12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using fis.media.Library.Media.EventArgs;
- using fis.media.Library.Media.Members;
- using fis.media.Library.Media.Publisher;
- using fis.media.Library.Players;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace fis.media.Library.Media.Players
- {
- public class PlayerChannel
- {
- private VideoFrameData _currentVideoFrame;
- private Task _task;
- private ChannelVideoFrame _channelVideoFrame;
- /// <summary>
- /// 频道名称
- /// </summary>
- public ChannelNameEnum ChannelName {get;set;}
- /// <summary>
- /// 成员角色类型
- /// </summary>
- public MemeberTypeEnum ChannelMemberRoleType { get; set; }
- /// <summary>
- /// 频道所属成员Id
- /// </summary>
- public string ChannelMemberId { get; set; }
- /// <summary>
- /// 是否正在播放
- /// </summary>
- public bool IsPlaying { get; set; }
- /// <summary>
- /// 当前视频帧
- /// </summary>
- public VideoFrameData CurrentVideoFrame => _currentVideoFrame;
- /// <summary>
- /// 收到画面
- /// </summary>
- public event EventHandler<ChannelVideoFrame> FrameRecieved;
- /// <summary>
- /// 错误事件
- /// </summary>
- public event EventHandler<ErrorArgs> ErrorAccurred;
- /// <summary>
- /// 状态事件
- /// </summary>
- public event EventHandler<StatusArgs> StatusChanged;
- public void UpdateFrame(VideoFrameData videoFrameData)
- {
- _currentVideoFrame= videoFrameData;
- IsPlaying = true;
- if (_channelVideoFrame == null)
- {
- _channelVideoFrame = new ChannelVideoFrame(videoFrameData, ChannelMemberId, ChannelName,ChannelMemberRoleType);
- }
- else {
- _channelVideoFrame.VideoFrameData = _currentVideoFrame;
- }
- if (_task == null)
- {
- _task = new Task(() => FrameRecieved.Invoke(this, _channelVideoFrame));
- }
- _task.Start();
- }
- }
- }
|