示例#1
0
 private void CommentProvider_OnReceivedComment(object sender, ReceivedCommentArgs e)
 {
     //接收到弹幕时的处理。
     if (e.Comment.MsgType != MsgTypeEnum.LiveStart)
     {
         if (e.Comment.MsgType != MsgTypeEnum.LiveEnd)
         {
             return;
         }
         _mw.AppendLogln("INFO", "[主播结束直播]");
         _flvDownloader?.Stop();
         if (!_autoStart)
         {
             Stop();
         }
         else
         {
             _mw.Dispatcher.Invoke(() => { _mw.LiveStatus.Content = "未直播"; });
         }
     }
     else
     {
         _mw.AppendLogln("INFO", "[主播开始直播]");
         if (!_autoStart || _flvDownloader.IsDownloading)
         {
             return;
         }
         _flvDownloader.Start();
         _mw.Dispatcher.Invoke(() => { _mw.LiveStatus.Content = "正在直播"; });
     }
 }
示例#2
0
 private void CommentProvider_OnReceivedComment(object sender, ReceivedCommentArgs e)
 {
     try
     {
         //DEBUG: 弹幕显示测试
         //InfoLogger.SendInfo(_roomid, "收到弹幕", e.Comment.CommentUser + ": " + e.Comment.CommentText);
         //接收到弹幕时的处理。
         if (e.Comment.MsgType != MsgTypeEnum.LiveStart)
         {
             if (e.Comment.MsgType != MsgTypeEnum.LiveEnd)
             {
                 return;
             }
             InfoLogger.SendInfo(Roomid, "INFO", "[主播结束直播]");
             Stop();
         }
         else
         {
             InfoLogger.SendInfo(Roomid, "INFO", "[主播开始直播]");
             //重新开始下载直播
             force_stoping = true;
             Stop();
             Start();
         }
     }
     catch (Exception ex)
     {
         InfoLogger.SendInfo(Roomid, "ERROR", "在收取弹幕时发生未知错误:" + ex.Message);
     }
 }
示例#3
0
        private async void CommentProvider_OnReceivedComment(object sender, ReceivedCommentArgs e)
        {
            //接收到弹幕时的处理。
            if (e.Comment.MsgType != MsgTypeEnum.LiveStart)
            {
                if (e.Comment.MsgType != MsgTypeEnum.LiveEnd)
                {
                    return;
                }
                _mw.AppendLogln("INFO", "[主播结束直播]");
                _flvDownloader?.Stop();
                if (!_autoStart)
                {
                    Stop();
                }
                else
                {
                    _mw.Dispatcher.Invoke(() => { _mw.LiveStatus.Content = "未直播"; });
                }
            }
            else
            {
                _mw.AppendLogln("INFO", "[主播开始直播]");

                if (!_autoStart || _flvDownloader.IsDownloading)
                {
                    return;
                }
                //准备查找下载地址
                var pathFinder = new PathFinder(_mw);

                //查找真实下载地址
                try
                {
                    if (_flvRunning)
                    {
                        return;
                    }
                    _flvRunning = true;
                    _flvUrl     = await pathFinder.GetTrueUrl(_roomid);

                    _flvRunning = false;
                }
                catch
                {
                    _mw.AppendLogln("ERROR", "未取得下载地址");
                    Stop();
                    return; //停止并退出
                }

                _mw.AppendLogln("INFO", "下载地址已更新。");

                _flvDownloader.Start(_flvUrl);
                CheckStreaming();
            }
        }
示例#4
0
 private void _cmtProvider_OnReceivedComment(object sender, ReceivedCommentArgs e)
 {
     _cmtQueue.Enqueue(e.Comment);
 }
示例#5
0
        private async void CommentProvider_OnReceivedComment(object sender, ReceivedCommentArgs e)
        {
            try
            {
                //DEBUG: 弹幕显示测试
                _mw.AppendLogln("收到弹幕", e.Comment.CommentUser + ": " + e.Comment.CommentText);
                //接收到弹幕时的处理。
                if (e.Comment.MsgType != MsgTypeEnum.LiveStart)
                {
                    if (e.Comment.MsgType != MsgTypeEnum.LiveEnd)
                    {
                        return;
                    }
                    _mw.AppendLogln("INFO", "[主播结束直播]");
                    _flvDownloader?.Stop();
                    if (!_autoStart)
                    {
                        Stop();
                    }
                    else
                    {
                        _mw.Dispatcher.Invoke(() => { _mw.LiveStatus.Content = "未直播"; });
                    }
                }
                else
                {
                    _mw.AppendLogln("INFO", "[主播开始直播]");

                    if (!_autoStart || _flvDownloader.IsDownloading)
                    {
                        return;
                    }
                    //准备查找下载地址
                    var pathFinder = new PathFinder(_mw);

                    //查找真实下载地址
                    try
                    {
                        if (_flvRunning)
                        {
                            return;
                        }
                        _flvRunning = true;
                        _flvUrl     = await pathFinder.GetTrueUrl(_roomid);

                        _flvRunning = false;
                    }
                    catch
                    {
                        _mw.AppendLogln("ERROR", "未取得下载地址");
                        Stop();
                        return; //停止并退出
                    }

                    _mw.AppendLogln("INFO", "下载地址已更新。");

                    try
                    {
                        _flvDownloader.Start(_flvUrl);
                    }
                    catch (Exception exception)
                    {
                        _mw.AppendLogln("ERROR", "下载视频流时出错:" + exception.Message);
                        Stop();
                    }

                    CheckStreaming();
                }
            }catch (Exception ex)
            {
                _mw.AppendLogln("ERROR", "在收取弹幕时发生未知错误:" + ex.Message);
                Stop();
            }
        }