using fis.media.Library.Media.Players;
using fis.media.Library.Media.Rooms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fis.media.Library.Media.Members
{
public abstract class AbstractMember:IDisposable
{
private AbstractPlayer _player;
private bool _isOnline;
public AbstractMember(string id)
{
Id = id;
}
///
/// Player 引用
///
public AbstractPlayer Player => _player;
///
/// 成员Id
///
public string Id { get; protected set; }
///
/// 是否在线
///
public bool IsOnline
{
get { return _isOnline; }
set
{ if (_isOnline != value)
{
_isOnline = value;
}
}
}
public virtual bool AdaptMemberUpdate()
{
if (IsOnline)
{
if (Player == null)
{
var activeMember = this as ActiveMember;
ApplyPlayer(TRTCRoom.GenerateRtcPlayer(activeMember));
}
}
return true;
}
public bool ApplyPlayer(AbstractPlayer player)
{
_player = player;
return true;
}
public void Dispose()
{
Player.Dispose();
}
}
}