使用vlc的ActiveX控件播放视频

最近项目中涉及到在web页面中去播放一个.mp4格式的视频文件。

开始使用的是windows自带的播放器,clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6

发现播放不了视频,因为视频用的是.mp4格式,需要h264解码,所以需要一个支持h264的

播放器。

从网上看了一下vlc播放器,支持ActiveX,就下载了一个试试看。版本为vlc-2.1.5-win32。

clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921 这个是objectid。

从网上搜了一下用法弄了半天才把视频放出来,主要遇到了几个问题。

·建议去看安装目录下的readme.txt里面的内容挺具体。

·需要把ActiveX在系统中注册一下

注册表信息

新建一个install.reg文件,内容如下

Windows Registry Editor Version 5.00   //必须有这句话

[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]

InstallDir="C:\Program Files\VideoLAN\VLC"  //vlc安装的路径,必须在plugins文件的父文件夹

新建一个install.bat文件,内容如下

REGSVR32 C:\WINDOWS\AXVLC.DLL  //指向axvlc.dll文件的路径,就在安装路径下能找到此dll

按照上面的两个步骤进行注册。

或者在install.bat文件中直接写成这样。

regsvr32 axvlc.dll

regedit /s install.reg

readme.txt原文:

III. Local Install

The VLC NSIS installer will install the ActiveX Control without

requiring any further manual intervention, but for people who like to

live on the edge, here are the steps you need to perform once you have

built the ActiveX Control.

The ActiveX control DLL file may be copied anywhere on the target

machine, but before you can use the control, you will need to register

it with Windows by using the REGSVR32 command, as per following example:

REGSVR32 C:\WINDOWS\AXVLC.DLL

If the control needs to use external VLC plugins (i.e other than the

built-in ones), make sure that the plugin path is set in the registry as

per following example:

[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]

InstallDir="C:\Program Files\VideoLAN\VLC"

The InstallDir must be the parent directory of the ‘plugins‘ directory.

WARNING: Both control and plugins must come from the same source build

tree. Otherwise, at best, the control will not play any content,

at worse it may crash Internet Explorer while attempting to load

incompatible plugins.

·接下来测试是否能播放视频文件了,这个弄了好久。

在<param name="MRL" values="">这个属性中进行播放视频的设置,我试了好多种形式都没能正常播放。最后发现values的地址值要加上file:///前缀。(本地视频播放)

代码:

<html>
<body>
    <div>
		<object id="vlc" type="application/x-vlc-plugin" width="600" height="400" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" >
			<param name="src" value="file:///E:\\00_docs\\01_projects\\mp4\\test.mp4">
			<param name="autoloop" value="False" />
			<param name="autoplay" value="True" />
		</object>
    </div>
</body>
</html>

试了一下,下面的地址方式也是可以播放的

file:///E:\00_docs\01_projects\mp4\test.mp4

cab制作

vlc属性

1) Properties

The following public properties can be used to control the plugin

from HTML, the property panel of Visual Basic and most ActiveX aware

applications.

+==========+=========+===================================+===============+

| Name:    | Type:   |   Description:                    | Alias:        |

+==========+=========+===================================+===============+

| autoplay | boolean | play when control is activated    | autostart     |

+----------+---------+-----------------------------------+---------------+

| autoloop | boolean | loop the playlist                 | loop          |

+----------+---------+-----------------------------------+---------------+

| mrl      | string  | initial MRL in playlist           | src, filename |

+----------+---------+-----------------------------------+---------------+

| mute     | boolean | mute audio volume                 |               |

+----------+---------+-----------------------------------+---------------+

| visible  | boolean | show/hide control viewport        | showdisplay   |

+----------+---------+-----------------------------------+---------------+

| volume   | integer | set/get audio volume              |               |

+----------+---------+-----------------------------------+---------------+

| toolbar  | boolean | set/get visibility of the toolbar |               |

+----------+---------+-----------------------------------+---------------+

The alias column shows an alternative <PARAM name> for the property in

internet explorer, which is useful to maintain compatibility with HTML

pages already leveraging Windows Media Player

2) Programming APIs

The MRL, Autoplay and Autoloop properties are only used to configure the

initial state of the ActiveX control,i.e before its activation; they are

ignored afterward. Therefore, if some runtime control is required, the

following APIs should be used within your programming environment:

Variables:

+==========+=========+=========+=======================================+

| Name:    | Type:   | Access: | Description:                          |

+==========+=========+=========+=======================================+

| Playing  | boolean |   RO    | Returns whether some MRL is playing   |

+----------+---------+---------+---------------------------------------+

| Time     | integer |   RW    | Time elapsed in seconds playing       |

|          |         |         | current MRL                           |

|          |         |         | NOTE: live feeds returns 0            |

+----------+---------+---------+---------------------------------------+

| Position | real    |   RW    | Playback position within current MRL  |

|          |         |         | in a scale from 0.0 to 1.0            |

|          |         |         | NOTE: live feeds returns 0.0          |

+----------+---------+---------+---------------------------------------+

| Length   | integer |   RO    | Total length in seconds of current MRL|

|          |         |         | NOTE: live feeds returns 0            |

+----------+---------+---------+---------------------------------------+

| Volume   | integer |   RW    | Current volume from 0 to 100          |

+----------+---------+---------+---------------------------------------+

| Visible  | boolean |   RW    | Indicates whether control is visible  |

+----------+---------+---------+---------------------------------------+

时间: 2024-10-08 12:22:17

使用vlc的ActiveX控件播放视频的相关文章

C# Winform开发程序调用VLC播放器控件播放视频.

VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC.Test吧 复制文件 在自己的项目目录里创建一个Lib目录,里面再创建一个VLC目录, 在VLC的安装目录能找到这三个 文件/文件夹 复制到自己的项目里 在项目属性里配置生成事件 这一步的效果是在编译程序的时候能自动把库文件复制到输出目录. 毕竟在创建git仓库的时候是要屏蔽输出目录的. xcop

常用的Activex 控件

1. Flash Player  ActiveX Control 6.0.47.0 与FLASH 6.0配套的浏览器端动画播放插件                  download.pchome.net/development/activex/551.html 2. ACE Mega Codec Pack Professional 6.03 目前互联网上最齐全的多媒体文件播放插件CoDecS.ActiveXFilterS和其他应用程序(基于                  www.onlin

C#制作ActiveX控件中调用海康SDK的问题

这个事情就是一个坑,耽误了两周时间,之前并没有做过ActiveX这玩意,现在客户需求如此,只能说是在网上看着教程做了. 事情是这样的,有一台海康威视的摄像头,客户需要一个ActiveX控件嵌入到网页中,通过点击按钮开始录制和结束录制来进行视频的录制和保存,关于海康摄像头的二次开发在此就不多说了,可以参考SDK中的说明. 直接上流程: 1.开发环境: VS2010,这个打包方便,之前用VS2013打包的,总是调用不了,不知道原因是什么:SDK是32位的,用64位的在Winform中可以正常使用,在

IE11使用 ActiveX 控件

解决方案: ActiveX 控件 ActiveX 控件是一些小应用,网站可以使用这类小应用提供视频和游戏等内容. 浏览 Web 时,你也可以使用这些小应用与工具栏和股票行情等内容进行交互. 但是,这些应用有时可能出现问题,或者向你提供不需要的内容. 某些情况下,这些应用可以用来从你的电脑收集信息.破坏电脑上的信息.在未获得你同意的情况下在你的电脑上安装软件或允许其他人远程控制你的电脑. ActiveX 筛选 Internet Explorer 中的 ActiveX 筛选可防止网站安装和使用这些应

ActiveX控件(ATL篇)

目录 第1章 VC++6.0创建    2 1.1 目标    2 1.2 创建项目    2 1.3 增加COM类    4 1.4 属性    7 1.5 事件    8 1.6 实现连接点    9 1.7 编码    11 1.7.1 增加成员变量    11 1.7.2 初始化成员变量    11 1.7.3 完成属性赋值代码    11 1.7.4 完成控件绘制代码    11 1.7.5 响应鼠标左键按下消息    13 1.7.6 修改DllUnregisterServer   

ActiveX控件(MFC篇)

目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构    6 1.3.1 COM接口    6 1.3.2 COM类    7 1.3.3 属性页    7 1.3.4 应用程序类    8 1.3.5 注册与注销    8 1.4 方法    9 1.4.1 增加    9 1.4.2 删除    11 1.5 属性    12 1.5.1 Te

16.COM组件技术应用之一:ActiveX控件

一.ActiveX控件(COM组件技术的应用之一) flash.ocx 1. 概念 1.1 ActiveX控件的概念 基于COM组件技术,可以被任何支持COM标准的计算机程序的项目使用. 可是采用拖拽的方式创建,使用向一般控件一样方便.文件的后缀是ocx,有时称ocx控件. 1.2 COM组件的概念 Component Object Model,组件对象模型.可以改善项目的架构,使得项目可维护性和可复用性更好. COM组件是一些小的可以执行的二进制文件,以接口的方式为其他的程序.系统和组件提供服

C#开发ActiveX控件

昨天写了篇博客<Winform 程序嵌入WPF程序 并发送消息>,没有说明为什么要嵌入WPF程序,那么今天就来唠叨唠叨其中的一个使用场景,开发ActiveX控件 首先,新建一个类库工程HuaYun.ActiveX,右键工程属性,在“应用程序”页,点击“程序集信息”按钮,在弹出的窗体里勾选“使程序集COM可见”,具体操作如下图 第二步,切换到“生成”的选项卡,勾选“为COM互操作注册”,如下图 第三步,在AssemblyInfo.cs里添加[assembly: AllowPartiallyTru

【转载】基于MFC的ActiveX控件开发(3)

原文:http://iysm.net/?p=122 3.事件 ActiveX 控件使用事件通知容器控件上发生了某些事情.事件的常见示例包括单击控件.使用键盘输入数据和控件状态更改.当发生这些操作时,控件将引发事件以提醒容器. MFC 支持两种事件:常用和自定义.常用事件是 COleControl 类自动处理的事件.自定义事件使控件得以在该控件特定的操作发生时通知容器.控件内部状态发生更改或收到某个窗口消息即属于此类事件. 常用事件 常用事件由 COleControl 类自动引发.COleCont