VLC0.9.9 ActiveX的精簡製作及其在web上的使用

來源:互聯網
上載者:User

     有關於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)"等自己的名字。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.