VB.NET .Net 6.0(VS2022)中如何嵌入简易视频媒体播放器
.NET 6 VB.NET 实现视频播放功能的落地方法
.NET 6 桌面端(WinForms/WPF)确实没有提供全场景通用的原生托管视频播放控件,根据你的开发场景选以下方案即可,全部适配VS2022开发环境:
方案1:WPF项目直接用内置MediaElement(零额外依赖,最简便)
如果你的项目是WPF模板创建的,直接使用框架内置控件即可,不需要引入任何外部包:
- 在窗体XAML中添加控件声明:
<MediaElement x:Name="VideoPlayer" LoadedBehavior="Manual" Width="800" Height="450"/>
- 后台VB代码调用播放逻辑:
' 加载视频并播放 VideoPlayer.Source = New Uri("C:\本地视频文件路径.mp4", UriKind.Absolute) VideoPlayer.Play() ' 常用控制接口 ' VideoPlayer.Pause() '暂停 ' VideoPlayer.Stop() '停止
注意:WinForms项目无法直接使用该控件,不要硬套。
方案2:WinForms项目用COM互操作调用系统WMP组件(轻量无第三方依赖)
WinForms场景下最轻量的方案是直接调用系统自带的Windows Media Player组件,不需要额外安装运行时:
- 第一步:右键项目选择「编辑项目文件」,确认目标框架配置为Windows专属版本:
<TargetFramework>net6.0-windows</TargetFramework>
- 第二步:右键依赖项选择「添加COM引用」,在COM组件列表中找到Windows Media Player,勾选后确认,VS会自动生成所需的互操作封装。
- 第三步:生成项目后,工具箱会自动出现
AxWindowsMediaPlayer控件,直接拖入窗体调整大小即可。 - 第四步:编写播放代码:
' 加载视频自动播放 AxWindowsMediaPlayer1.URL = "C:\本地视频文件路径.mp4" AxWindowsMediaPlayer1.Ctlcontrols.play()
注意:该方案依赖系统预装的Windows Media Player,Windows 10/11默认自带,精简版系统需先在「可选功能」中开启WMP支持。
方案3:WebView2承载原生video标签(编码兼容性最强)
如果遇到WMP不支持的视频编码(比如部分HEVC、AV1格式),可以用WebView2控件承载网页端video标签播放,兼容性覆盖几乎所有主流视频格式:
- 第一步:在Nuget包管理器中搜索安装
Microsoft.Web.WebView2到项目。 - 第二步:从工具箱将WebView2控件拖入窗体,调整到合适尺寸。
- 第三步:编写初始化和播放代码:
Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 初始化WebView2运行时 Await WebView21.EnsureCoreWebView2Async() ' 构造内嵌播放页 Dim videoPath = "C:\本地视频文件路径.mp4" Dim playerHtml = $" <!DOCTYPE html> <html> <body style='margin:0;padding:0;overflow:hidden'> <video src='{videoPath}' controls autoplay style='width:100%;height:100vh'></video> </body> </html>" WebView21.NavigateToString(playerHtml) End Sub
注意:Windows 10 20H2及以上版本系统自带WebView2运行时,低版本系统需要随程序打包发布运行时。
避坑提示:不要直接照搬.NET Framework下的
System.Windows.Media.MediaPlayer类做WinForms视频播放,.NET 6下该类仅支持音频输出,没有内置视频渲染承载能力,调用后不会显示画面。
内容的提问来源于stack exchange,提问作者Arno
相关产品推荐
相关产品推荐

