『VLC』vlc-plugin的使用與代碼套用

來源:互聯網
上載者:User

1. 安裝與使用可參考:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>        <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />        <title>VLC Embedd test</title></head><body><object   classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"     codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab"     <!--width="854"    height="480"-->    width="320"    height="180"    id="vlc">    <param name="ShowDisplay" value="True" />    <!--<param name="src" value="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi" />-->    <param name="src" value="test.mov" />    <param name="Toolbar" value="True" />    <param name="Autoloop" value="False" />    <param name="Autoplay" value="True" />    <param name="Mute" value="False" /></object>   </body></html>

2. 在2.0.0後vlc源碼結構中的projects『建立在 libvlc上的項目,如Mozilla外掛程式,ActiveX 外掛程式』被縮減了,此前的代碼可以在這裡取:http://download.videolan.org/videolan/vlc/

3. TODO:嵌入網頁,preview視頻裝置,並做些修改。

4. 待補。。。

個別與控制項相關的檔案:axvlc.def

LIBRARY AXVLC.DLLEXPORTS    DllMain = DllMain@12    DllCanUnloadNow = DllCanUnloadNow@0    DllGetClassObject = DllGetClassObject@12    DllRegisterServer = DllRegisterServer@0    DllUnregisterServer = DllUnregisterServer@0

axvlc.idl interface desc language(介面描述語言)


axvlc_idl.c / axvlc_idl.h,能組件介面相關的定義

簡單回憶一下COM組件的運作,【客戶程式】【COM庫:在註冊表找到DLL】【組件程式:COM對象,類廠】:客戶程式調用CoCreateInstance,間接調用CoGetClassObject函數;COM庫找到並載入對應DLL;調用DLLGetClassObject;DLLGetClassObject函數建立類廠,並吧介面指標返回給CoGetClassObject,返回到CoCreateObject;CoCreateInstance拿到類廠後,便可以建立COM對象,類廠建立COM對象,最終返回給客戶,直接調用。

對於網頁與ActiveX控制項的互動

<param name="Autoplay" value="True" />

屬性包 IPersistPropertyBag 介面的實現方法和調用方式。

嵌入IE中得ActiveX控制項,由IE建立。IE通過shdocvw.dll 對ActiveX控制項進行尋找名稱為InitPropertyBag 或 InitStream 的 Instance 的一個子項。若找到,它將根據登錄機碼的內容建立一個 IPropertyBag 或 IStream(相應地),並將其傳遞給IPersistPropertyBag::Load
或 IPersistStream::Load 方法(相應地)。 
這樣ActiveX的控制項很容易地自然地實現了和網頁的序列化互動。
也正是由於IE和COleControl對對該介面的預設支援,因此在建立ActiveX控制項的時候,程式員很容易的就可以解決屬性在網頁上的儲存問題。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.