VLC0.9.9 ActiveX的精简制作及其在web上的使用

     有关于VLC应用方面的介绍,好友jeremiah已经讲的非常仔细。我这边就关于自己在工作碰到的问题做个记录,


一、源码和第三方库
    源码:http://download.videolan.org/pub/videolan/vlc/0.9.9/vlc-0.9.9.tar.bz2
    库:  contrib-20090118-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2


二、Cygwin下载
    Cygwin下载:http://www.cygwin.com/setup.exe。选择通过网络安装

三、执行
    sed -i 's/AM_GNU_GETTEXT_VERSION(0.17)/AM_GNU_GETTEXT_VERSION(0.15)/g' configure.ac       
   ./bootstrap

四、精简VLC
    保存脚本为configure-simple.sh


    执行./configure-vlc01.sh

五、修改两个文件

    libtool第156行:
修改global_symbol_pipe="" 为   
global_symbol_pipe="sed -n -e 's/^.*[         ]//([ABCDGIRSTW][ABCDGIRSTW]*//)[                         ][                        ]*//(//)//([_A-Za-z][_A-Za

-z0-9]*//)/$///1//2//3 //3/p'"

Makefile.am第695行 修改
cp "$(top_srcdir)/extras/package/win32/vlc.exe.manifest" "$(win32_destdir)/"

#  cp "$(top_srcdir)/extras/package/win32/vlc.exe.manifest" "$(win32_destdir)/"
 
Makefile.am第725行:
cp $(top_srcdir)/projects/mozilla/npvlc.dll.manifest $(win32_des
tdir)/mozilla/

#  cp $(top_srcdir)/projects/mozilla/npvlc.dll.manifest $(win32_des
tdir)/mozilla/

Makefile.am第736行 修改
cp $(top_srcdir)/projects/activex/axvlc.dll.manifest $(win32_destdir)/activex/

#  cp $(top_srcdir)/projects/activex/axvlc.dll.manifest $(win32_destdir)/activex/


六、执行make

七、打包

     执行以下命令就会得到绿色版的vlc:
     make package-win32-base
     make package-win32-zip
    如果想得到安装文件,首先需要下载NSIS 2.41,给个连接:[url]http://prdownloads.sourceforge.net/nsis/nsis-2.41-setup.exe?download[/url]。
    安装NSIS 2.41,然后在打包好的vlc-0.9.9a下面右键vlc.win32.nsi,选择Compile NSIS 。

八、activex控件的注册
    新建install.bat ,内容如下
    regsvr32 axvlc.dll
    reg add "HKEY_LOCAL_MACHINE/SOFTWARE/VideoLAN/VLC" /v "InstallDir" /t REG_SZ /d "%CD%//" /f
    这样就可以直接注册当前文件夹下的activex控件axvlc.dll

九、cab包制作
    如果要类似与test.html作个播放器服务器,但是我们却不能手动操纵客户端去下载注册vlc的ActiveX,解决方法就是自己制作cab文件。
    (1) 下载cabsdk.exe:[url]http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/cabsdk.exe[/url]
    (2) 安装cabsdk.exe
    (3) 将axvlc.dll及vlc的安装文件拷贝到cabsdk安装路径/BIN/ 下。
    (4) 在/BIN下新建文本文件axvlc.inf,内容如下:

; Version number and signature of INF file.
;
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
vlc-0.9.9a-win32.exe
axvlc.dll=axvlc.dll

[axvlc.dll]
FileVersion=0,9,9,0
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}
RegisterServer=no
hook=nsiinstaller

[vlc-0.9.9a-win32.exe]
FileVersion=0,9,9,0
file-win32-x86=thiscab

[nsiinstaller]
run=%EXTRACT_DIR%/vlc-0.9.9a-win32.exe
    注意:请根据安装文件的版本修改此文件。
    (5) 命令行到BIN目录下,执行以下命令生成cab文件:

CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.9.9a-win32.exe
十、cab包使用

   html页面下使用cab文件可以通过以下方式:

   <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
                codebase="your/path/of/cabfile/axvlc.cab"
                         width="640" height="480" id="vlc" events="True">
   <param name="Src" value="" />
   <param name="ShowDisplay" value="True" />
   <param name="AutoLoop" value="False" />
   <param name="AutoPlay" value="False" />
   </OBJECT>
   这样web客户端无须手动注册axvlc.dll就可以使用了。

十一、vlc自动安装activex控件

    cab包其实就是让客户自动下载vlc的安装文件,然后启动安装。

    Activex plugin默认是没有被选中的,如何让它这一步默认是选中的,或者选中并且是灰色的(比如像Media Player这一项),不让客户改变呢?我们需要修改编译完的vlc的

vlc.win32.nsi文件。然后用它重新制作vlc-0.9.9a-win32.exe.
    具体修改过程如下:
    在vlc.win32.nsi文件中,找到:
Section /o $Name_Section04 SEC04
SectionIn 3
    修改为:
Section $Name_Section04 SEC04
SectionIn 1 2 3
    或者在1 2 3后面加入“空格RO”,表示这项是必须的不能去掉,就是选中并且是灰色的。$Name_Section04可以替换为"My ActiveX plugin (required)"等自己的名字。

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值