http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25498312&id=218294 

分类: 系统运维

首先要注册VLC的ActiveX控件。

拷贝vlc-0.8.6e\activex目录下面的axvlc.dll文件到c:\windows目录下面,然后运行命令提示符cmd。在命令提示符中输入如下命令注册该控件

REGSVR32 C:\WINDOWS\AXVLC.DLL

系统会提示注册成功,但是实际上是无法使用播放功能的!通过分析注册表的注册信息知道,播放的时候依赖的一些动态链接库没有在ActiveX中。

所以得去选择适合Windows下的VLC播放器,取其编译好的插件。到http://www.videolan.org/vlc/download-windows.html下载播放器并安装,然后复制其目录下的axvlc.dll、axvlc.oca、libvlc.dll、npvlc.dll以及plugins下的所有文件到某个目录(例如myRelease)中,作为支持VLC ActiveX控件运行的基础。有了这些文件之后就可以卸载安装的VLC,使用自己开发的播放器了。

运行命令cmd,进入myRelease目录,执行下面的命令注册VLC ActiveX控件:

REGSVR32 AXVLC.DLL

然后使用VC++6.0开发一个简单的播放器。具体开发过程不详述了,请参考myVLC目录下面的myVLC.dsw工程文件。

由于VLC没有使用文档,更加没有ActiveX的开发手册,开发时使用的是VLC ActiveX Plugin v1,通过阅读vlccontrol.h文件中的类声明来了解VLC控件的用法的。从中可以知道它实现了基本的播放功能,但是没有提供获取文件播放时间的接口,所以无法使用时间来显示播放进度,只能以播放百分比来表示。

播放器使用方法

运行myVLC.exe后,打开一个VLC控件支持的多媒体文件就可以播放了。

该播放器可以实现以下功能:

1. 全屏显示:在播放视频时,可以双击VLC播放窗口实现全屏显示与窗口显示的切换。目前还不知道如何刷新窗口,当播放窗口被部分遮住时,可能会无法自动刷新,得通过全屏切换来实现刷新。

2. 进度显示:播放过程中,进度条显示播放进度,进度条旁边的标签显示播放百分比。拖动进度条不会改变播放进度。

3. “FileName”:显示已经打开的文件或者URL。

4. “OpenFile”:选择并播放一个磁盘上的多媒体文件

5. “PlayURL”:在文本输入框中输入网络流媒体URL后单击进行播放。如果接收的是广播,则无法快进/快退、调整播放速度、暂停/继续等。

6. “Play”:从文件的开始处播放。

7. “Pause/Resume”:暂停/继续的切换。

8. “Stop”:停止播放,播放窗口显示VLC的logo。

9. “Backward”:后退5秒钟。在播放mpeg视频时,这个按钮有用,在播放mp3时会导致重新播放。

10. “Forward”:前进5秒钟。在播放mpeg视频时,这个按钮有用,在播放mp3时会导致重新播放。

11. “PlaySlower”:减慢播放速度。单击一次减少一半的速度,最慢只能达到正常速度的1/8。

12. “PlayFaster”:加快播放速度。单击一次增加一倍的速度,最快只能达到正常速度的8倍。

13. “-”“+”:调节音量,每次以5增加或者减少。

14. “Mute”:静音/非静音的切换。

15. “About”:作者信息。

16. “Exit”:退出应用程序。

 

阅读(8175) | 评论(0) | 转发(0) |

 

通过VLC的ActiveX进行二次开发,实现一个多媒体播放器 2011-04-10 00:57:23的更多相关文章

  1. Netty入门二:开发第一个Netty应用程序

    Netty入门二:开发第一个Netty应用程序 时间 2014-05-07 18:25:43  CSDN博客 原文  http://blog.csdn.net/suifeng3051/article/ ...

  2. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解

    在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...

  3. Netty4具体解释二:开发第一个Netty应用程序

        既然是入门,那我们就在这里写一个简单的Demo,client发送一个字符串到server端,server端接收字符串后再发送回client. 2.1.配置开发环境 1.安装JDK 2.去官网下 ...

  4. wordpress二次开发第一个jquery对比

    $(document).ready(function(){ $("input").focus(function(){ $("input").css(" ...

  5. AUTOCAD二次开发-----删除一个图层里面的所有对象

    https://blog.csdn.net/aasswwe/article/details/40899759 private void Test() { // 获取当前文档和数据库 Document ...

  6. NX二次开发-创建一个3 x 3矩阵UF_CSYS_create_matrix

    1 NX9+VS2012 #include <uf.h> #include <uf_csys.h> #include <uf_mtx.h> UF_initializ ...

  7. NX二次开发-UFUN点收集器UF_UI_select_point_collection

    #include <uf.h> #include <uf_ui.h> UF_initialize(); //点收集器 char sMessage[] = "点收集器& ...

  8. NX二次开发-从一个坐标系到另一个坐标系的转换

    函数:UF_MTX4_csys_to_csys().UF_MTX4_vec3_multiply() 函数说明:从一个坐标系统到另一个坐标系统的转换.如下图红色坐标系下有个红色的点,将红色的点转到绿色的 ...

  9. Android VLC播放器二次开发1——程序结构分析

    最近因为一个新项目需要一个多媒体播放器,所以需要做个视频.音频.图片方面的播放器.也查阅了不少这方面的资料,如果要从头做一个播放器工作量太大了,而且难度也很大.所以最后选择了VLC作为基础,进行二次开 ...

随机推荐

  1. 记录将CentOS7linux系统python升级到3后yum安装是报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax问题解决

    前两天将CentOS7里的python版本升级到了3.5.2 今天想装个解压软件,在执行yum install -y XXX 的时候报错 然后按照提示打开这个文件 vi /usr/bin/yum yu ...

  2. linux中常用的60个命令及作用详解

    Linux 必学的 60 个命令 Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在 Linux 系统上工作离不开使用系统 ...

  3. SpringBoot使用RestTemplate

    SpringBoot使用RestTempate SpringBoot使用RestTemplate摘要认证 SpringBoot使用RestTemplate基础认证 设置pom引用 <?xml v ...

  4. 手写ORM持久层框架(转)

    工程结构: 本文测试的数据库为: 其中student的表结构为: 表数据: 配置文件 DB2.properties driver=com.mysql.jdbc.Driver url=jdbc\:mys ...

  5. js的事件流理解

    面试问到js的事件流,当时说的不是很清楚,现在觉得有必要把这个弄清楚. 事件捕获和事件冒泡 事件流描述的是从页面中接收事件的顺序,也可理解为事件在页面中传播的顺序. 事件流主要分为两种,即事件捕获和事 ...

  6. 2018-2-13-Windows-10-16251-添加的-api

    title author date CreateTime categories Windows 10 16251 添加的 api lindexi 2018-2-13 17:23:3 +0800 201 ...

  7. tomcat的跳转与日志

    1.跳转的关键性配置; 2. 日志的配置 1.跳转的关键性配置 当用户访问http://www.a.com/test时,会跳转打开/var/www/html目录下的页面 关键性配置如下: [root@ ...

  8. GetExtendedTcpTable

    https://blog.csdn.net/sky101010ws/article/details/55511501 AdjustTokenPrivileges function Library Ad ...

  9. oracle汇编03

    .long expression1, expression2, ..., expressionNThe .long directive generates a long integer (32-bit ...

  10. less:运算

    less中的运算 -任何数字.颜色或者变量都可以参加运算,运算应该被包裹在括号中. -例如:+-*. @width: 30px; .box { width: (20 + 5) * @width; } ...