基于VLC的本地视频播放器
這兩天利用Vlc.DotNet.Forms做了一個WinForm版本的本地視頻文件播放器,可以實現文件播放、暫停、進度條拖拽、截圖功能,在這里做一個簡單的記錄。
使用工具:VS2019 ,?VLC 3.0.11。
1、安裝Vlc.DotNet.Forms
在項目NuGet管理中引入對應的依賴包,如下圖。
?
2、獲取Vlc.DotNet依賴的VLC類庫
從官網(https://www.videolan.org/vlc/index.zh.html)下載VLC播放器安裝包,本項目使用版本為vlc-3.0.11-win32.exe,解壓安裝包獲取如下圖所示的相關組件,復制到項目編譯生成目錄下。
?
3、使用VlcControl控件
VLC類庫安裝成功后(步驟1)即可使用封裝好的VlcControl控件(WinForm自定義控件)進行視頻播放相關操作,在工具箱中可以看到此控件,可以直接拖拽到界面使用。
?
動態創建VlcControl:
/// <summary> /// 初始化VLC控件 /// </summary> private void InitVlcControl() {this.pnlVideo.SuspendLayout();this.vlcControl = new VlcControl();// 開始初始化this.vlcControl.BeginInit();this.vlcControl.BackColor = Color.Black;this.vlcControl.Dock = DockStyle.Fill;this.vlcControl.Spu = -1;// 設置VLC依賴組件目錄this.vlcControl.VlcLibDirectory = new DirectoryInfo(Path.Combine(Application.StartupPath, "vlclib"));this.vlcControl.VlcMediaplayerOptions = null;this.vlcControl.Stopped += new EventHandler<VlcMediaPlayerStoppedEventArgs>(this.vlcControl_Stopped);this.pnlVideo.Controls.Add(this.vlcControl);// 初始化完成this.vlcControl.EndInit();this.pnlVideo.ResumeLayout(); }注意:
(1)必須調用BeginInit();方法開始進行初始化,否則VlcControl無法初始化成功,報錯“未將對象引用設置到對象的實例”;
(2)必須設置VLC類庫目錄到VlcLibDirectory,否則無法編譯,這里設置為程序所在目錄下的“vlclib”文件夾,即步驟2中dll復制到的目錄。
?
播放、暫停、截圖等功能的實現比較簡單,僅需調用VlcControl提供的接口方法即可實現。
// 播放本地文件 vlcControl.SetMedia(new Uri(videoFilePath)); vlcControl.Play();// 暫停 vlcControl.Pause();// 停止 vlcControl.Stop();// 截圖保存到指定文件 vlcControl.TakeSnapshot(imageSavePath);// 設置進度,position為進度百分比,等于1時會停止播放 vlcControl.Position = position;參考博文:?https://www.cnblogs.com/kiba/p/11303137.html
?
?
總結
以上是生活随笔為你收集整理的基于VLC的本地视频播放器的全部內容,希望文章能夠幫你解決所遇到的問題。