序文
本論文では、Vlc.DotNetでの最初の開発の前に準備作業をやらせる、ビデオ放送機能のためのVLCライブラリを呼び出し、WPFで、説明しています。
準備
まず、次の画面を取得し、WpfVLCは、その後、Neget検索Vlc.DotNetを入力してプロジェクトを作成します。
私たちは、(図のように、それをアンインストールし、ここで私がインストールされている)[インストール]をクリックし、Vlc.DotNet.Wpfを選びました。
その後、我々は、VLC公式サイトに行ってきましたVLC Playerをダウンロードしてください。
VLCの公式ウェブサイト:のhttp://www.videolan.org/
私のコンピュータは64であるので、以下に示すように、私は、VLCの64ビット版をダウンロード:
ダウンロードしたら、次のようにショットがあるファイルをダウンロードし、それを正しくインストールします。
インストールが完了したら、以下に示すように、我々は、特定の設置の場所とオープンを見つけます:
フォルダ内に、私たちは、ファイルlibvlc.dll、libvlccore.dllとフォルダのプラグインを見つけ、その後、それらをコピーします。
私たちは、今、私たちが作成したWpfVLC、プロジェクトに戻り、ファイルのディレクトリを入力して、デバッグフォルダを開き、次のように私たちは、そのディレクトリ内のフォルダlibvlcを作成します。
その後、次のように、フォルダliblicで勝つ - のx64を作成します。
次のようにそして、私たちは、このフォルダの中に、三つのファイルのVLCをコピーします:
これは、私たちの準備作業が行われ、今でコーディングを開始します。
使用Vlc.DotNetは、ビデオを再生します
今、私たちは、コードの開発プロジェクトを入力します。
我々はVLC 64を使用しているので、まず、我々は、プロジェクト64のプロジェクトを設定します。
その後、我々は、メインウィンドウのページを開きます。
導入されたローカルページの名前空間に参加Vlc.DotNetの名前空間を。
xmlns:VLC = "CLR名前空間:Vlc.DotNet.Wpf;アセンブリ= Vlc.DotNet.Wpf"
次に、以下のように我々は、再生ボタン、ページレイアウトVlcControlコントロールと開いているファイルに追加し、停止します。
<DockPanel DockPanel.Dock="Bottom"> <StackPanel Height="50" DockPanel.Dock="Bottom" Orientation="Horizontal"> <Button Name="btnOpen" Content="打开文件" Click="open_Click" Width="80"></Button> <Button Name="btnPause" Content="暂停" Click="pause_Click" Width="50"></Button> <Button Name="btnStop" Content="停止" Click="stop_Click" Width="50"></Button> </StackPanel> </DockPanel> <vlc:VlcControl x:Name="VlcControl" />
然后,我们编写xaml.cs文件的代码,如下:
public partial class MainWindow : Window { private string filePath; public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { var currentAssembly = Assembly.GetEntryAssembly(); var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName; var libDirectory = new DirectoryInfo(System.IO.Path.Combine(currentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "win-x64")); this.VlcControl.SourceProvider.CreatePlayer(libDirectory); } private void open_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = false; ofd.Title = "请选择视频文件"; var result = ofd.ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { filePath = ofd.FileName; try { btnPause.Content = "暂停"; this.VlcControl.SourceProvider.MediaPlayer.Play(new Uri(filePath)); } catch (Exception ex) { } } } public void pause_Click(object sender, RoutedEventArgs e) { if (btnPause.Content.ToString() == "播放") { btnPause.Content = "暂停"; this.VlcControl.SourceProvider.MediaPlayer.Play(); } else { btnPause.Content = "播放"; this.VlcControl.SourceProvider.MediaPlayer.Pause(); } } private void stop_Click(object sender, RoutedEventArgs e) { new Task(() => { this.VlcControl.SourceProvider.MediaPlayer.Stop();//这里要开线程处理,不然会阻塞播放 }).Start(); } }
这样,我们就完成了最基本的视频播放、暂停、停止的功能。
可以看到,播放、暂停、停止的代码非常简单,就是调用控件的play,pause,stop函数即可。
因为VLC非常优秀,可以支持多种格式的文件播放,所以我们写的这个播放器也就可以打开任意类型的视频文件。
播放界面如下:
现在,加入Slider控制播放进度和音量。
Slider样式,参考如下文章:
VlcControl控制播放进度的方法很简单,如下:
private void Slider1_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e) { var position = (float)(slider1.Value / slider1.Maximum); if (position == 1) { position = 0.99f; } this.VlcControl.SourceProvider.MediaPlayer.Position = position;//Position为百分比,要小于1,等于1会停止 }
控制播放声音的方法如下:
private void Slider2_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e) { //Audio.Volume:音量的百分比,值在0—200之间 this.VlcControl.SourceProvider.MediaPlayer.Audio.Volume = (int)slider2.Value; }
这样我们的播放器就开发完成了。
最终界面如下:
播放其他视频源
播放RTSP
通过上面的代码编写,我们了解到了,在C#里使用VLC播放视频的代码非常简单,只要在Play函数中写入地址即可。
那么播放RTSP自然是同理,只要在Play中写入RTSP的地址即可,如下:
this.VlcControl.SourceProvider.MediaPlayer.Play(new Uri(rtsp://192.168.1.111));
播放摄像头
播放摄像头在这里也很简单,只是Play的入参稍微要注意一下即可,如下:
string mrl = @"dshow:// "; string optVideo = @":dshow-vdev=摄像头设备名"; //string optAudio = @":dshow-adev=音频设备名"; string size = ":dshow-size=800"; this.VlcControl.SourceProvider.MediaPlayer.Play(mrl, optVideo, size);
----------------------------------------------------------------------------------------------------
到此C#开发可播放摄像头及任意格式视频的播放器完成了。
代码已经传到Github上了,欢迎大家下载。
Github地址:https://github.com/kiba518/WpfVLC
----------------------------------------------------------------------------------------------------
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!
https://www.cnblogs.com/kiba/p/11303137.html