博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vlc.DotNet C#音视频播放器使用说明及简单实例
阅读量:4287 次
发布时间:2019-05-27

本文共 3517 字,大约阅读时间需要 11 分钟。

一、资源

官方Git地址:

Nuget包地址-wpf:

下载解压有四个类库工程和两个实例项目 
Vlc.DotNet.Core.Interops 
Vlc.DotNet.Core 
Vlc.DotNet.Forms 
Vlc.DotNet.Wpf 
和Vlc.DotNet.FormsSamples,Vlc.DotNet.WpfSamples 
后者依赖前者。

今天只看如何能快速运行起来,其他的方法再慢慢添加。 
从第一个开始 打开Vlc.DotNet.Core.Interops的工程文件.proj,打开后需要修改:1.解决方案-》属性-》配置,修改为Debug ,x86(如果你是64位,则选择x64). 
2.项目-》属性-》生成,凡是看到x64的,都改为x86的(本人用的x86系统),否则会有平台不兼容的错误。 (默认情况下是AnyCpu,运行抛出异常)
修改完后生成项目,在obj中找到生成的dll文件。

然后第二个 打开Vlc.DotNet.Core的工程文件.proj ,添加第一个生成的dll引用。然后同第一个。。。生成dll.

然后第三个 打开Vlc.DotNet.Forms的工程文件.proj,添加前面两个生成的dll引用。然后同上。。。生成dll.如果是winform,就到此为止,

如果是wpf,则对Vlc.DotNet.Wpf同样操作,添加前三个dll,修改属性。。。生成dll.

以使用wpf为例,前面生成的四个dll,添加到,Vlc.DotNet.WpfSamples项目中,然后修改项目的属性,,生成运行。如果顺利的话就可以运行了。 
不过前面生成的wpf.dll中的方法不多。只要运行起来,之后想添加什么,就去最底层dll找方法然后封装。这就不多讲了。

如果还有错误,试着检查项目属性的目标框架,总之要保持一致。

如果因为自己vlc陈旧而出现的Bug而来,那么给出建议: 
如果想解决一些非功能上出现的问题,比如有些视频格式不能设置进度(本人碰到的),视频播放时画面花点等,这些不属于代码问题,所以不需要去重新编译vlc的源代码(当时做的时候,以为是底层的代码问题,最后想通了,肯定是不同格式解码编码的问题),这类问题,下载vlc官方播放器,在其安装目录中找到plugins文件夹,里面就是各种格式的编码解码文件,替换最新的文件到自己的项目中,就可以解决了。不过一些官方播放器也存在的问题,此方法就无效了,只能去研究源代码了,不过这就有难度了。

二、实例

Xaml代码:

1.引用命名空间    xmlns:wpf="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"

2.创建控件实例 <wpf:VlcControl Grid.Row="0" x:Name="myControl"/>

C# 后台代码:

1.初始化引用库,必须

2.可以播放在线视频,可以播放本地视频

public partial class MainWindow : Window{    public MainWindow()    {        InitializeComponent();        //初始化配置,指定引用库        myControl.MediaPlayer.VlcLibDirectoryNeeded += OnVlcControlNeedsLibDirectory;        myControl.MediaPlayer.EndInit();    }    private void OnVlcControlNeedsLibDirectory(object sender, Vlc.DotNet.Forms.VlcLibDirectoryNeededEventArgs e)    {        var currentAssembly = Assembly.GetEntryAssembly();        var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;        if (currentDirectory == null)            return;        if (AssemblyName.GetAssemblyName(currentAssembly.Location).ProcessorArchitecture == ProcessorArchitecture.X86)            e.VlcLibDirectory = new DirectoryInfo(System.IO.Path.Combine(currentDirectory, @"..\..\..\lib\x86\"));        else            e.VlcLibDirectory = new DirectoryInfo(System.IO.Path.Combine(currentDirectory, @"..\..\..\lib\x64\"));    }    private void OnPlayButtonClick(object sender, RoutedEventArgs e)    {        //播放网络视频        myControl.MediaPlayer.Play(new Uri("http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"));        //播放FM广播失败        //myControl.MediaPlayer.Play(new Uri("mms://radiolive.jnnc.com/news"));        播放本地视频        //string filename = @"F:\MyDocument\视频\COOLUI理念篇.mp4";        //myControl.MediaPlayer.Play(new FileInfo(filename));    }    private void OnForwardButtonClick(object sender, RoutedEventArgs e)    {        myControl.MediaPlayer.Rate = 2;    }    private void GetLength_Click(object sender, RoutedEventArgs e)    {        GetLength.Content = myControl.MediaPlayer.Length + " ms";    }    private void GetCurrentTime_Click(object sender, RoutedEventArgs e)    {        GetCurrentTime.Content = myControl.MediaPlayer.Time + " ms";    }    private void SetCurrentTime_Click(object sender, RoutedEventArgs e)    {        myControl.MediaPlayer.Time = 5000;        SetCurrentTime.Content = myControl.MediaPlayer.Time + " ms";    }}

更多相关文章:

转载地址:http://bbogi.baihongyu.com/

你可能感兴趣的文章
【Win7系统 沙滩啤酒桌面主题】
查看>>
【.NET支持上下左右移动操作】
查看>>
【用Win7备份与还原让系统轻松回魂】
查看>>
【用Win7自带的DVD Maker制作视频】
查看>>
【幸福相守Windows7桌面热门主题】
查看>>
【天天酷跑新手全攻略】
查看>>
【有道云笔记手机PC端自动同步】
查看>>
【黑色蕾丝性感女神XP电脑主题】
查看>>
【XP系统命令提示符都有哪些运用技巧】
查看>>
【4个Win7系统轻松清理记录小技巧】
查看>>
【页面脚本错误快速解决方案】
查看>>
【php输出内容乱码解决方法】
查看>>
【Win8两种安全模式互相切换图形说明】
查看>>
【Win7系统去掉磁盘保护教程】
查看>>
【炫酷战机Win7热门主题】
查看>>
【可爱接吻鱼电脑主题】
查看>>
【详细介绍常见XP系统的配置要求】
查看>>
【解决使用scp命令时不必输入密码的程序】
查看>>
【无敌海景清醒电脑xp主题】
查看>>
【性感玫瑰&热门Win7主题】
查看>>