通过VLC的ActiveX进行二次开发,实现一个多媒体播放器 2011-04-10 00:57:23
分类: 系统运维
首先要注册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”:退出应用程序。
相关文章
- 实现string类的操作符重载 + = > < == != >> <<
- java实现填写算式
- java实现第五届蓝桥杯幂一矩阵
- java实现第六届蓝桥杯饮料换购
- Java实现第九届蓝桥杯递增三元组
- java实现机器人行走
- Java实现 蓝桥杯VIP 基础练习 字符串对比
- Java实现 蓝桥杯 基础练习 查找整数
- EasyPusher进行Android UVC外接摄像头直播推送实现方法
- 重新整理操作系统概念系类——信号量实现进程互斥
- atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证
- NLP:利用count函数或正则表达式compile、findall、finditer实现匹配统计(包括模糊匹配的贪婪匹配、懒惰匹配)、对多个字符串组成的列表进行多个模糊关键词进行模糊匹配案例
- Python:利用collections库实现统计单个字或单个字母的频率统计并进行降序输出、统计一个列表内重复元素并以字典形式输出
- AutoML之flaml:基于flaml框架对比lightgbm和xgboost模型进行自动化参数调优实现体内脂肪含量值回归预测案例之详细攻略
- ML之GB:基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库+Cypher查询语言)实现对用户进行Top5电影推荐案例
- Android CountDownTimer实现倒计时功能
- 智能优化算法——蚂蚁算法求解TSP问题(Matlab实现)
- 基于GPS 飞机导航的时间序列模型(Matlab代码实现)
- 【图像分类】基于 CNN 和混合/随机配对的数据增强方法进行图像分类(Matlab代码实现)
- Map按照Value值进行排序的实现
- python 操作excel根据某一行的数值对一行进行复制扩行-代码实现
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 实现 GroovyInterceptable 接口 | 重写 invokeMethod 方法 )
- Quartz.NET实现作业调度
- 使用TF2.x-GPU中的Tensorboard工具进行可视化训练分析:书写字体源码实现
- ML之KG:基于自定义电影矩阵+知识图谱矩阵数据集利用基于知识图谱的推荐算法(基于匹配的相似度的方法)实现对用户进行Top电影推荐案例
- 【项目实战】Gitlab与IDEA组合,实现基于Master环境,克隆分支进行代码更新?
- 【故障诊断】基于 KPCA 进行降维、故障检测和故障诊断研究(Matlab代码实现)