private async void BtStart_Click(object sender, EventArgs e) { mmLog.Text = string.Empty; MediaPlayer1.Debug_Mode = cbDebugMode.Checked; if (_videoInfoList.Count == 0) { MessageBox.Show("Please read formats first."); return; } MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV; MediaPlayer1.Audio_PlayAudio = false; MediaPlayer1.Audio_AdditionalStreams_Clear(); MediaPlayer1.FilenamesOrURL.Clear(); MediaPlayer1.FilenamesOrURL.Add(_videoInfoList[cbVideoStream.SelectedIndex].Url); if (_videoInfoList[cbVideoStream.SelectedIndex].ToString().Contains("Muxed")) { MediaPlayer1.Audio_PlayAudio = true; } if (cbAudioStream.SelectedIndex > 0) { MediaPlayer1.Audio_PlayAudio = true; MediaPlayer1.Audio_AdditionalStreams_Add(_audioInfoList[cbAudioStream.SelectedIndex].Url); } await MediaPlayer1.PlayAsync(); timer1.Start(); }
private void AddFile(string filename) { var info = new PIPInfo(); // first file should be added as usual, other files using PIP API if (MediaPlayer1.FilenamesOrURL.Count == 0) { MediaPlayer1.FilenamesOrURL.Add(filename); lbSourceFiles.Items.Add($@"{filename} (entire screen)"); info.Rect = new Rectangle(0, 0, 0, 0); info.Alpha = 1.0f; } else { int left = Convert.ToInt32(edPIPFileLeft.Text); int top = Convert.ToInt32(edPIPFileTop.Text); int width = Convert.ToInt32(edPIPFileWidth.Text); int height = Convert.ToInt32(edPIPFileHeight.Text); MediaPlayer1.PIP_Sources_Add(filename, left, top, width, height); lbSourceFiles.Items.Add($@"{filename} ({left}.{top}px, width: {width}px, height: {height}px)"); info.Rect = new Rectangle(left, top, width, height); info.Alpha = tbStreamTransparency.Value / 100.0f; } info.Filename = filename; info.ZOrder = _lastZOrder--; _pipInfos.Add(info); //lbSourceFiles.SelectedIndex = _pipInfos.Count - 1; }
private void btStart_Click(object sender, EventArgs e) { if (lbSourceFiles.Items.Count < 2) { MessageBox.Show("You must add 2 or more files to test seamless playback."); return; } InitPlayer(MediaPlayer1); InitPlayer(MediaPlayer2); foreach (var item in lbSourceFiles.Items) { sourceFiles.Add(item.ToString()); } CurrentPlayer = MediaPlayer1; MediaPlayer1.Show(); MediaPlayer2.Hide(); PlayFile(sourceFiles[0], MediaPlayer1); sourceFiles.RemoveAt(0); PlayFile(sourceFiles[0], MediaPlayer2); sourceFiles.RemoveAt(0); MediaPlayer2.Pause(); }
private void tbTimeline_Scroll(object sender, EventArgs e) { if (_timeTag == 0) { MediaPlayer1.Position_Set_Time(TimeSpan.FromSeconds(tbTimeline.Value)); } }
private async void Form1_FormClosed(object sender, FormClosedEventArgs e) { if (MediaPlayer1.Status != VFMediaPlayerStatus.Free) { await MediaPlayer1.StopAsync(); } }
private void cbDVDControlChapter_SelectedIndexChanged(object sender, EventArgs e) { if (cbDVDControlChapter.SelectedIndex > 0) { MediaPlayer1.DVD_Chapter_Select(cbDVDControlChapter.SelectedIndex); } }
private void cbDVDControlAudio_SelectedIndexChanged(object sender, EventArgs e) { if (cbDVDControlAudio.SelectedIndex > 0) { MediaPlayer1.DVD_Select_AudioStream(cbDVDControlAudio.SelectedIndex); } }
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { if (MediaPlayer1.Status != VFMediaPlayerStatus.Free) { MediaPlayer1.Stop(); } }
private void tbTimeline_Scroll(object sender, EventArgs e) { if (Convert.ToInt32(timer1.Tag) == 0) { MediaPlayer1.Position_Set_Time(TimeSpan.FromSeconds(tbTimeline.Value)); } }
private void timer1_Tick(object sender, EventArgs e) { int dur = (int)MediaPlayer1.Duration_Time(); TimeSpan spanDur = new TimeSpan(0, 0, 0, 0, dur); lbDuration.Text = FormatTime(spanDur); tbTimeline.Maximum = dur / 1000; TimeSpan spanPos; int pos = (int)MediaPlayer1.Position_Get_Time(); if (pos < dur) { spanPos = new TimeSpan(0, 0, 0, 0, pos); tbTimeline.Value = pos / 1000; } else { spanPos = new TimeSpan(0, 0, 0, 0, dur); tbTimeline.Value = dur / 1000; } lbPostion.Text = FormatTime(spanPos); }
private async void btStart_Click(object sender, EventArgs e) { MediaPlayer1.FilenamesOrURL.Add(edFilename.Text); MediaPlayer1.Loop = cbLoop.Checked; MediaPlayer1.Audio_PlayAudio = true; MediaPlayer1.Info_UseLibMediaInfo = true; MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device"; MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV; if (MediaPlayer1.Filter_Supported_EVR()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR; } else if (MediaPlayer1.Filter_Supported_VMR9()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9; } else { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer; } MediaPlayer1.MultiScreen_Enabled = true; MediaPlayer1.MultiScreen_Clear(); MediaPlayer1.MultiScreen_AddScreen(form2.Screen.Handle, form2.Screen.Width, form2.Screen.Height); await MediaPlayer1.PlayAsync(); // set audio volume for each stream MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value); MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value); timer1.Enabled = true; }
private void btUpdateRect_Click(object sender, EventArgs e) { int index = lbSourceFiles.SelectedIndex; if (index >= 0) { int left = Convert.ToInt32(edPIPFileLeft.Text); int top = Convert.ToInt32(edPIPFileTop.Text); int width = Convert.ToInt32(edPIPFileWidth.Text); int height = Convert.ToInt32(edPIPFileHeight.Text); _pipInfos[index].Rect = new Rectangle(left, top, width, height); _pipInfos[index].ZOrder = Convert.ToInt32(edZOrder.Text); _pipInfos[index].Alpha = tbStreamTransparency.Value / 100.0f; if (left == 0 && top == 0 && width == 0 && height == 0) { lbSourceFiles.Items[index] = $@"{_pipInfos[index].Filename} (entire screen)"; } else { lbSourceFiles.Items[index] = $@"{_pipInfos[index].Filename} ({left}.{top}px, width: {width}px, height: {height}px)"; } MediaPlayer1.PIP_Sources_SetSourcePosition(index, _pipInfos[index].Rect, tbStreamTransparency.Value / 100.0f); MediaPlayer1.PIP_Sources_SetSourceOrder(index, _pipInfos[index].ZOrder); } }
private void tbTimeline_Scroll(object sender, EventArgs e) { if (Convert.ToInt32(timer1.Tag) == 0) { MediaPlayer1.Position_Set_Time(tbTimeline.Value * 1000); } }
private async void btStop_Click(object sender, EventArgs e) { await MediaPlayer1.StopAsync(); timer1.Enabled = false; tbTimeline.Value = 0; }
private async void btStart_Click(object sender, EventArgs e) { mmError.Clear(); MediaPlayer1.FilenamesOrURL.Add(edFilename.Text); MediaPlayer1.Loop = cbLoop.Checked; MediaPlayer1.Audio_PlayAudio = true; MediaPlayer1.Source_Mode = VFMediaPlayerSource.DVD_DS; // read DVD info cbDVDControlTitle.Items.Clear(); cbDVDControlChapter.Items.Clear(); cbDVDControlAudio.Items.Clear(); cbDVDControlSubtitles.Items.Clear(); MediaInfo.Filename = edFilename.Text; MediaInfo.ReadDVDInfo(); for (int i = 0; i < MediaInfo.DVD_Disc_NumOfTitles; i++) { cbDVDControlTitle.Items.Add("Title " + (i + 1)); } MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device"; if (VideoCapture.Filter_Supported_EVR()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR; } else if (VideoCapture.Filter_Supported_VMR9()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9; } else { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer; } MediaPlayer1.Debug_Mode = cbDebugMode.Checked; await MediaPlayer1.PlayAsync(); // DVD // select and play first title if (cbDVDControlTitle.Items.Count > 0) { cbDVDControlTitle.SelectedIndex = 0; cbDVDControlTitle_SelectedIndexChanged(null, null); } // show title menu MediaPlayer1.DVD_Menu_Show(VFDVDMenu.Title); MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value); MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value); timer1.Enabled = true; }
private void btStop_Click(object sender, EventArgs e) { MediaPlayer1.Stop(); timer1.Enabled = false; tbTimeline.Value = 0; form2.Screen.Invalidate(); }
private void btStop_Click(object sender, EventArgs e) { VideoCapture1.Stop(); MediaPlayer1.Stop(); FaceDetectionRemove(); CarCounterRemove(); PedestrianDetectionRemove(); }
private void cbDVDControlTitle_SelectedIndexChanged(object sender, EventArgs e) { if (cbDVDControlTitle.SelectedIndex != -1) { // fill info cbDVDControlAudio.Items.Clear(); cbDVDControlSubtitles.Items.Clear(); cbDVDControlChapter.Items.Clear(); MediaInfo.DVD_Fill_Title_Info(cbDVDControlTitle.SelectedIndex); for (int i = 0; i < MediaInfo.DVD_Title_NumberOfChapters; i++) { cbDVDControlChapter.Items.Add("Chapter " + Convert.ToString(i + 1)); } if (cbDVDControlChapter.Items.Count > 0) { cbDVDControlChapter.SelectedIndex = 0; } for (int i = 0; i < MediaInfo.DVD_Title_MainAttributes_NumberOfAudioStreams; i++) { MediaInfo.DVD_Fill_Title_Audio_Info(cbDVDControlTitle.SelectedIndex, i); string s = MediaInfo.DVD_Title_MainAttributes_AudioAttributes_AudioFormat; s = s + " - "; s = s + MediaInfo.DVD_Title_MainAttributes_AudioAttributes_NumberOfChannels + "ch" + " - "; s = s + MediaInfo.DVD_Title_MainAttributes_AudioAttributes_LanguageS; cbDVDControlAudio.Items.Add(s); } if (cbDVDControlAudio.Items.Count > 0) { cbDVDControlAudio.SelectedIndex = 0; } cbDVDControlSubtitles.Items.Add("Disabled"); for (int i = 0; i < MediaInfo.DVD_Title_MainAttributes_NumberOfSubpictureStreams; i++) { MediaInfo.DVD_Fill_Title_Subpicture_Info(cbDVDControlTitle.SelectedIndex, i); cbDVDControlSubtitles.Items.Add(MediaInfo.DVD_Title_MainAttributes_SubpictureAttributes_LanguageS); } cbDVDControlSubtitles.SelectedIndex = 0; // if (nil we just enumerate titles and chapters if (sender != null) { // play title MediaPlayer1.DVD_Title_Play(cbDVDControlTitle.SelectedIndex); tbTimeline.Maximum = (int)MediaPlayer1.DVD_Title_GetDuration().TotalSeconds; } } }
public async void Play2_ClickAsync() { //https://github.com/amamiya/SYEngine/blob/master/!GUIDE/Segment/Segment.md 播放分段的 FLV\MP4 //载入播放引擎 SYEngine.Core.Initialize(); //所有URL地址列表 var url_list = new List <String>();//实例化新的 SYEngine.Playlist 对象; //url_list.Add("http://data.vod.itc.cn/?rb=1&key=jbZhEJhlqlUN-Wj_HEI8BjaVqKNFvDrn&prod=flash&pt=1&new=/51/116/UdKGIuSjQIO8dynrybyS1E.mp4"); url_list.Add("http://player.acfun.cn/route_mp4?dt=0&uid=0×tamp=1540371865&fid=040040020400005BCEED7100010002570000000000-0000-0000-0231-311400000000.mp4&ns=video.acfun.cn&ran=0&vid=5bceeca80cf2c691e00a68fb&customer_id=5859fdaee4b0eaf5dd325b91&sign=ct5bd035990cf22adc685b3ddc"); //拒绝访问了 问题应该出在请求头 //构造SYEngine的PlayList。 var play_list = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);//网络类型 foreach (var url in url_list) { //获取每个URL文件的媒体时长和文件大小。 //如果你的App能通过其他方法提供这些信息,也可以不执行这样的操作。 // var file = new SYEngine.MediaInformation(); //await file.OpenAsync(new Uri(url));//失败会有异常,这里忽略。 play_list.Append(url, 0, 0); // 添加到PlayList //也可一〉play_ list. Append(url, D, 0), 然后把cfgs的DetectDur ationF orParts设置为true。 //播放引擎会自动连接所有 分段地址去获取文件大小和时长。 } //设置网络参数。使用 SYEngine.PlaylistNetworkConfigs 结构体来设置网络参数。这个结构体的相关解释请拉到页面底部的 网络选项说明 来查看 SYEngine.PlaylistNetworkConfigs cfgs = default(SYEngine.PlaylistNetworkConfigs); cfgs.HttpUserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"; cfgs.HttpReferer = string.Empty; cfgs.HttpCookie = string.Empty; cfgs.UniqueId = string.Empty; //如果要使用动态更新URL,这个不能是Empty,这里不使用。 cfgs.DownloadRetryOnFail = true; //启用断线重连,建议打开。 cfgs.DetectDurationForParts = true; play_list.NetworkConfigs = cfgs; //设置到MedisElement。 MediaPlayer1.Source = await play_list.SaveAndGetFileUriAsync();// 最后,使用 MediaElement 的 Play 方法来播放,或者设置 AutoPlay 属性为true MediaPlayer1.Play(); }
private async void btStop_Click(object sender, EventArgs e) { await VideoCapture1.StopAsync(); await MediaPlayer1.StopAsync(); FaceDetectionRemove(); CarCounterRemove(); PedestrianDetectionRemove(); }
private void btStop_Click(object sender, EventArgs e) { timer1.Stop(); MediaPlayer1.Stop(); _pipInfos.Clear(); MediaPlayer1.PIP_Sources_Clear(); lbSourceFiles.Items.Clear(); }
private void cbDVDControlSubtitles_SelectedIndexChanged(object sender, EventArgs e) { if (cbDVDControlSubtitles.SelectedIndex > 0) { MediaPlayer1.DVD_Select_SubpictureStream(cbDVDControlSubtitles.SelectedIndex - 1); } // 0 - x - subtitles // -1 - disable subtitles }
private void BtReadFormats_Click(object sender, EventArgs e) { cbFormat.Items.Clear(); _videoInfoList = MediaPlayer1.YouTube_GetURLInfo(edURL.Text); foreach (var info in _videoInfoList) { cbFormat.Items.Add(info.ToString()); } cbFormat.SelectedIndex = 0; }
private void ConfigureMediaPlayer() { MediaPlayer1.Debug_Mode = cbDebugMode.Checked; MediaPlayer1.Debug_Dir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\VisioForge\\"; MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV; MediaPlayer1.FilenamesOrURL.Clear(); MediaPlayer1.FilenamesOrURL.Add(edFilename.Text); MediaPlayer1.Video_Renderer_SetAuto(); }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } MediaPlayer1?.Dispose(); MediaPlayer1 = null; base.Dispose(disposing); }
private void btStart_Click(object sender, EventArgs e) { mmError.Clear(); switch (cbSourceMode.SelectedIndex) { case 0: MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV; break; case 1: MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_DS; break; case 2: MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_FFMPEG; break; case 3: MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_VLC; break; } MediaPlayer1.FilenamesOrURL.Add(edFilename.Text); MediaPlayer1.Loop = cbLoop.Checked; MediaPlayer1.Audio_PlayAudio = true; MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device"; if (MediaPlayer1.Filter_Supported_EVR()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR; } else if (MediaPlayer1.Filter_Supported_VMR9()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9; } else { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer; } MediaPlayer1.Debug_Mode = cbDebugMode.Checked; MediaPlayer1.Play(); // set audio volume for each stream MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value); MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value); timer1.Enabled = true; }
private void btStart_Click(object sender, EventArgs e) { if (rbSTreamTypeFile.Checked) { FileStream fs = new FileStream(edFilename.Text, FileMode.Open); ManagedIStream stream = new ManagedIStream(fs); // specifing settings // MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS; MediaPlayer1.Source_Stream = stream; MediaPlayer1.Source_Stream_Size = fs.Length; } else { byte[] source = File.ReadAllBytes(edFilename.Text); MemoryStream ms = new MemoryStream(source); ManagedIStream stream = new ManagedIStream(ms); // specifing settings // MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS; MediaPlayer1.Source_Stream = stream; MediaPlayer1.Source_Stream_Size = ms.Length; } // video and audio present in file. tune this settings to play audio files or video files without audio MediaPlayer1.Source_Stream_VideoPresent = true; MediaPlayer1.Source_Stream_AudioPresent = true; MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS; MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device"; if (VideoCapture.Filter_Supported_EVR()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR; } else if (VideoCapture.Filter_Supported_VMR9()) { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9; } else { MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer; } MediaPlayer1.Debug_Mode = cbDebugMode.Checked; MediaPlayer1.Play(); tbTimeline.Maximum = (int)(MediaPlayer1.Duration_Time() / 1000); timer1.Enabled = true; }
public void Goin() { BackExit.setBack(Goin); sNum = 0; fNum = 0; CD.setMainUI(this); time.start(); successNum.Text = "0"; failedNum.Text = "0"; status.Text = "空闲"; hasPath1 = false; hasPath2 = false; hasPath3 = false; string path1 = CD.getBasePath() + "Media\\openBox.mp4"; string path2 = CD.getBasePath() + "Media\\addCar.mp4"; string path3 = CD.getBasePath() + "Media\\closeBox.mp4"; if (File.Exists(path1)) { MediaPlayer1.Source = new Uri(path1); MediaPlayer1.Play(); hasPath1 = true; } else { MessageBox.Show("文件丢失:" + path1); } if (File.Exists(path2)) { MediaPlayer2.Source = new Uri(path2); MediaPlayer2.Play(); hasPath2 = true; } else { MessageBox.Show("文件丢失:" + path2); } if (File.Exists(path3)) { MediaPlayer3.Source = new Uri(path3); MediaPlayer3.Play(); hasPath3 = true; } else { MessageBox.Show("文件丢失:" + path3); } }
private async void BtStart_Click(object sender, EventArgs e) { if (_videoInfoList.Count == 0) { MessageBox.Show("Please read formats first."); return; } MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV; MediaPlayer1.FilenamesOrURL.Clear(); MediaPlayer1.FilenamesOrURL.Add(_videoInfoList[cbFormat.SelectedIndex].Uri); await MediaPlayer1.PlayAsync(); }
private void VideoCapture1_OnTimeshiftFileCreated(object sender, TimeshiftFileEventArgs e) { MediaPlayer1.Debug_Mode = true; MediaPlayer1.Debug_Dir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\VisioForge\\"; string filename = e.Filename; MediaPlayer1.FilenamesOrURL.Clear(); MediaPlayer1.FilenamesOrURL.Add(filename); MediaPlayer1.Source_Mode = VFMediaPlayerSource.Timeshift; MediaPlayer1.Play(); }