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(); } } }