日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于VLC的本地视频播放器

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于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的本地视频播放器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。