WPF 使用VLC实现视频的播放:网上开源代码我复制了一份:  https://github.com/someonehan/Vlc.DotNet

1. 准备阶段

(I)  libvlc.dll 和 libvlccore.dll 是必须的两个库

(II) 配合使用和还要有plugins文件夹下面的乱七八糟的dll,这个东西如果不好找可以在电脑上安装一个vlc播放器然后在安装目录下面就能够找到这个文件夹

2. 使用播放

(I) 在使用这个开源的控件之前需要指定VlcLibDirectory其实主要就是plugins文件夹下面乱七八糟的dll(这里面肯定有好多东西是没有用的)指定这个VlcLibDirectory我使用这两种方法:

            var currentAssembly = Assembly.GetEntryAssembly();
var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
vlcControl.MediaPlayer.VlcLibDirectory = new DirectoryInfo(Path.Combine(currentDirectory, @"..\..\..\lib\x64\"));
vlcControl.MediaPlayer.VlcLibDirectoryNeeded += OnVlcControlNeedsLibDirectory;

        private void OnVlcControlNeedsLibDirectory(object sender, 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(Path.Combine(currentDirectory, @"..\..\..\lib\x86\"));
else
e.VlcLibDirectory = new DirectoryInfo(Path.Combine(currentDirectory, @"..\..\..\lib\x64\"));
}

毫无疑问第二种方法要好许多,第一种方式是我在我的电脑上运行使用的。

(II)  vlcControl是个什么东西啊,这个是我们需要在xmlns界面上定义的开源代码中定义好的控件

xmlns:wpf="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"
<--!这个引用是必须要加上的 -->
<wpf:VlcControl x:Name="vlcControl"></wpf:VlcControl>

(III) 剩下的就是播放视频了,我们可以在适当的时候调用类似下面的代码,当然给予Vlc强大的功能我们不仅可以播放任何格式的本地视频(擦,现在各种格式的视频格式真是让人蛋疼了)还可以播放网络视频

vlcControl.MediaPlayer.Play(new FileInfo(@"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"));//播放咱们电脑上都有的野生动物的视频

下面这个是我在网上找的一段新闻视频

vlcControl.MediaPlayer.Play(new Uri("http://218.93.204.74/145/49/102/letv-uts/14/ver_00_22-322571901-avc-479655-aac-32005-220400-14345429-51c2a04560d147a24c1357f68cd84849-1436438909790_mp4/ver_00_22_3_3_1_820432_700112.ts?crypt=30aa7f2e236&b=520&nlh=3072&nlt=45&bf=36&p2p=1&video_type=mp4&termid=1&tss=ios&geo=CN-1-12-1&platid=1&splatid=101&its=0&proxy=3736741834,987235498,1032384108&keyitem=platid,splatid,its&ntm=1436767800&nkey=d0d58ef311bc08d22da3b6d753a97c31&nkey2=1a2c44f168e70910f6586dcd1dba9217&mltag=1&mmsid=32925199&tm=1436756751&key=ed30d40ea485ed2ea14d0a2b17f71c6b&playid=0&vtype=13&cvid=474368485029&payff=0&ctv=pc&m3v=1&hwtype=un&ostype=WindowsServer2008R2&tag=letv&sign=zw_baidushort&p1=1&p2=10&p3=-&tn=0.11052118893712759&pay=0&uuid=E98B6E3090FB295CF7C5E1030BAF7F351C1F96A6&token=null&uid=null&rateid=1000&errc=0&gn=1058&buss=100&qos=4&cips=113.208.137.58&ch=&p1=1&p2=10&p3=-&appid=500&v=vod.4.2.07022222&rd=1436756767540"));

简单的播放先实现在这,如果要播放共享内存中的视频应该怎么弄?暂时我还不知道找时间好好看看!

WPF VlC 实现视频的播放(1)的更多相关文章

  1. 基于VLC库C#开发可播放摄像头及任意格式视频的播放器

    前言 本文主要讲述,在WPF中,借助Vlc.DotNet调用VLC类库,实现视频播功能,下面我们先来做开发前的准备工作. 准备工作 首先,我们创建一个项目WpfVLC,然后,进入Neget搜索Vlc. ...

  2. 在wpf中如何让MediaElement的视频循环播放

    原文:在wpf中如何让MediaElement的视频循环播放 MediaElement原始的播放是只播放一遍:如何设置让MediaElement播放 的视频或者音频循环播放,解决如下: 修改Media ...

  3. C# WPF 用MediaElement控件实现视频循环播放

    在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放.暂停.停止. 一种方式,使用MediaElement.MediaEnded事件,在视频播放结束后,自动 ...

  4. 深入理解MVC C#+HtmlAgilityPack+Dapper走一波爬虫 StackExchange.Redis 二次封装 C# WPF 用MediaElement控件实现视频循环播放 net 异步与同步

    深入理解MVC   MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性 ...

  5. WPF之路三:视频的播放

    同图片一样,把视频资源复制到文件夹路径下,修改资源属性复制到输出目录"始终复制",生成操作改为“内容”, 把<MediaElement  Name="myVid&q ...

  6. C#开发可播放摄像头及任意格式视频的播放器

    前言 本文主要讲述,在WPF中,借助Vlc.DotNet调用VLC类库,实现视频播功能,下面我们先来做开发前的准备工作. 准备工作 首先,我们创建一个项目WpfVLC,然后,进入Neget搜索Vlc. ...

  7. WPF VLC客户端和SDK的简单应用

    VLC_SDK编程指南 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.它可以支持目前市面上大多数的视频解码,除了Rea ...

  8. C#使用EmguCV实现视频读取和播放,及多个视频一起播放的问题

    大家知道WPF中多线程访问UI控件时会提示UI线程的数据不能直接被其他线程访问或者修改,该怎样来做呢? 分下面两种情况 1.WinForm程序 1)第一种方法,使用委托: private delega ...

  9. WPF下的视频录制界面设计

    原文:WPF下的视频录制界面设计 在去年12月份,我曾经写过三篇文章讨论C#下视频录制.播放界面的设计.这三篇文章是:利用C#画视频录制及播放的界面(一) 利用C#画视频录制及播放的界面(二)利用C# ...

随机推荐

  1. 【python】入门学习(四)

    函数: 定义函数 #area.py from math import pi def area(radius): """Return the area of a circl ...

  2. osg四元数设置roll pitch heading角度

    roll绕Y轴旋转 pitch绕X轴旋转 heading绕Z轴旋转 单位是弧度,可以使用osg::inDegrees(45)将45角度转换为弧度 定义一个四元数 osg::Quat q( roll,o ...

  3. ios安装cocoaPods

    1. 安装 a. 查看源 i.   gem sources -l b. 删除源 i.   sudo gem sources -r https://rubygems.org/ c. 设置源 i.   s ...

  4. iOS系类教程之用instruments来检验你的app

    比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文   入门 为了节省大家的时间,提供一个演示的D ...

  5. 报错 - Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lex failed with exit code 1

    这里有两种情况:第一种是某xxx.m文件不存在或路径不对,而且里面有5.1什么的解决方法如下:在Build Phases-->Complie Sources中找到有两个xxx.m文件,一个正常, ...

  6. [转]c++ vector 遍历方式

    挺有趣的,转来记录 随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化.   vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写 ...

  7. NYOJ题目809摸底

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAAI4CAIAAAAj4CIaAAAgAElEQVR4nO3drXLjTLeG4X0S4TmQYB

  8. Linux下多窗口分屏式终端--Terminator

    很不错的分屏插件终端:https://pkgs.org/centos-6/repoforge-i386/terminator-0.95-3.el6.rf.noarch.rpm.html

  9. CLR via C#(11)-无参属性、有参数属性(索引器)

    一. 无参属性 1. 定义属性 无参属性就是我们最常见的属性方式,在赋值时可以加入一定的逻辑判断.属性的定义其实不复杂,先看个直观的例子: 说明: 属性要定义名称和类型,且类型不能是void. 属性是 ...

  10. ****CodeIgniter使用cli模式运行,把php作为shell编程

    shell简介 在计算机科学中,Shell俗称壳(用来区别于核).而我们常说的shell简单理解就是一个命令行界面,它使得用户能与操作系统的内核进行交互操作. 常见的shell环境有:MS-DOS.B ...