private void 字幕开关_Click(object sender, RoutedEventArgs e) { if (字幕开关.IsChecked == true) { 字幕使能 = true; 字幕框.Visibility = Visibility.Visible; if (!是否已经连接弹幕) { try { new Task(() => { listener.Connect(int.Parse(DD.DownIofo.房间_频道号)); listener.MessageReceived += Listener_MessageReceived; }).Start(); } catch (Exception) { } 是否已经连接弹幕 = true; } } else { 字幕框.Visibility = Visibility.Collapsed; 字幕使能 = false; if (!弹幕使能 && !字幕使能) { try { listener.Dispose(); listener = new LiveChatListener(); } catch (Exception) { } 是否已经连接弹幕 = false; } } }
private void Window_Loaded(object sender, RoutedEventArgs e) { string A = System.IO.Path.Combine(new FileInfo(Assembly.GetEntryAssembly().Location).DirectoryName, "libvlc", /*IntPtr.Size == 4 ?*/ "win-x64" /*: "win-x64"*/); this.VlcControl.SourceProvider.CreatePlayer(new DirectoryInfo(A)); this.Dispatcher.Invoke(new Action(delegate { 提示框.Visibility = Visibility.Visible; 提示文字.Content = "该房间已开播,检测直播流状态,等待推流数据中...."; })); new Task((() => { try { listener.Connect(int.Parse(DD.DownIofo.房间_频道号)); listener.MessageReceived += Listener_MessageReceived; } catch (Exception) { } //MMPU.DownList.Add(DD); if (DD.DownIofo.是否是播放任务) { DD.Start("缓冲视频中"); DD.DownIofo.备注 = "缓冲视频中"; } else { DD.Start("直播观看缓冲进行中"); DD.DownIofo.备注 = "直播观看缓冲进行中"; } Thread.Sleep(MMPU.播放缓冲时长 * 1000); this.Dispatcher.Invoke(new Action(delegate { 提示框.Visibility = Visibility.Collapsed; })); try { this.Dispatcher.Invoke(new Action(delegate { try { Play_SETVolume((int)音量.Value); //this.VlcControl.SourceProvider.MediaPlayer.Audio.Volume = (int)音量.Value; } catch (Exception) { } })); // Aplayer.Open(DD.DownIofo.文件保存路径); // this.VlcControl.SourceProvider.MediaPlayer.Play(new Uri(DD.DownIofo.文件保存路径)); this.VlcControl.SourceProvider.MediaPlayer.EndReached += 播放到达结尾触发事件;; Play_Open(DD.DownIofo.文件保存路径); //Aplayer.OnStateChanged += 播放到达结尾触发事件; 播放状态 = true; if (DD.DownIofo.平台 == "bilibili") { //获取弹幕(); } } catch (Exception) { ; } })).Start(); }