1. 程式人生 > >EasyPlayer windows RTSP播放器OCX外掛使用說明

EasyPlayer windows RTSP播放器OCX外掛使用說明

鑑於大家對於EasyPlayer外掛的使用還不太熟悉,特此寫一篇外掛的使用文件,供大家參考;EasyPlayer外掛有兩種,一種是基於IE的ActiveX控制元件,一種是基於FireFox(也支援多瀏覽器)的npAPI外掛;兩種外掛均包含原始碼,由於FireBreath框架生成程式碼比較多,npAPI外掛只包含關鍵程式碼,後續會提供專門講解FireBreath生成EasyPlayer npAPI外掛的文件,下面我們開始講解兩種外掛如何使用。

  1. ActiveX OCX控制元件

    ActiveX控制元件使用MFC ActiveX框架生成非常簡單,這裡就不做過多贅述,感興趣的同學可以下載EasyPlayer原始碼

    ;注意,IE11已經不支援AttachEvent的方式觸發瀏覽器頁面事件,所以,需要匯出播放事件的同學在前端頁面編寫的時候需要做好IE11的相容性處理;

  2. npAPI外掛
    npAPI外掛由FireBreath框架生成,該框架提供了非常詳細的步驟即可生成我們想要的播放器外掛框架,框架生成好以後將EasyPlayer原始碼的EasyPlayerPlugin目錄下的程式碼替換掉生成的程式碼即可。

  3. 外掛匯出介面說明

[1] LONG Start(LPCTSTR sURL, LPCTSTR sRenderFormat, LPCTSTR sUserName, LPCTSTR sPassword, LPCTSTR sHardDecord);

Start函式對EasyPlayer_OpenStream函式進行了封裝,其作用是開啟一個RTSP流;

引數說明:
[sURL]:開啟的流地址,以rtsp://開頭;
[sRenderFormat]:播放渲染格式,列舉對應格式:
D3D支援格式如下:
YV12: 0
YUY2: 1
UYVY: 2
A8R8G8B8: 3
X8R8G8B8: 4
RGB565: 5
RGB555: 6
GDI支援格式:
RGB24: 7
[sUserName]: RTSP流驗證使用者名稱,如果流URL裡面已經包含, 這裡填空;
[sPassword]: RTSP流驗證密碼,如果流URL裡面已經包含, 這裡填空;
[sHardDecord]: 是否使用硬體解碼, 0=軟解 1=硬解

注意:OCX介面函式所有引數均為字串型別,主要是為了方便頁面js呼叫,下面所有介面引數皆是如此;

[2] void Config(LPCTSTR sFrameCache, LPCTSTR sPlaySound, LPCTSTR sShowToScale, LPCTSTR sShowStatisticInfo);

Config函式配置播放器的一些引數,諸如快取,是否播放音訊,是否按比列顯示,是否顯示位元速率資訊;
引數說明:
[sFrameCache]:快取幀數,1-n ,該數值越小,延時越小,當然播放畫面可能再網路頻寬不理想的情況下會比較卡,反之則延時越大,相應的播放也會比較流暢;
[sPlaySound]:是否播放音訊,1=播放,0=不播放
[sShowToScale]:是否按比列顯示,1=是 0=否 ,軟解碼時有效
[sShowStatisticInfo]:是否顯示位元速率資訊,1=是 0=否 ,軟解碼時有效

[3] void SetOSD(LPCTSTR show, LPCTSTR alpha, LPCTSTR red, LPCTSTR green, LPCTSTR blue, LPCTSTR left, LPCTSTR top, LPCTSTR right, LPCTSTR bottom, LPCTSTR strOSD);

SetOSD是新增介面,用於設定視訊顯示時的OSD顯示;
引數說明:
[show]:是否顯示OSD,1=顯示 0=不顯示
[alpha]:OSD顯示疊加透明度, 0-255,0是完全透明。255完全不透明
[red]:OSD字幕顏色RGB分量中的R分量,
[green]:OSD字幕顏色RGB分量中的G分量,
[blue]:OSD字幕顏色RGB分量中的B分量,
[left]:OSD基於視訊的顯示位置座標的左上角x軸座標
[top]:OSD基於視訊的顯示位置座標的左上角y軸座標
[right]:OSD基於視訊的顯示位置座標的右下角x軸座標
[bottom]:OSD基於視訊的顯示位置座標的右下角y軸座標
[strOSD]:OSD字幕

[4] void Close(void);
Close關閉Start開啟的流;

注意目前ActiveX控制元件定義一個控制元件初始化一個唯一的EasyPlayer播放器例項,一個Start對應一個Close函式;Start函式只能呼叫一次,下一次呼叫時必然是先Cose,再Start;
4. WEB網頁端呼叫
我們已經瞭解了外掛的匯出介面,那麼我們就可以很容易的編寫JS來實現網頁端的播放啦,當然,在此之前,我們需要註冊一下外掛,在EasyPlayer目錄下有reg.bat和np_reg.bat批處理檔案分別對OCX和npAPI進行註冊,提示註冊成功後即可使用。

在EasyPlayer的bin目錄下我們已經提供了兩個Demo html頁面供大家測試和使用,JS程式碼很簡單,直接呼叫即可:

        function config(){
        var obj = document.getElementById("EasyPlayerOcx");

        var cache = document.getElementById("cache").value;
        var playsound = document.getElementById("playsound").value;
        var showtoscale= document.getElementById("showtoscale").value;
        var showsatic = document.getElementById("showsatic").value;

        obj.Config(cache, playsound, showtoscale, showsatic);

        //alert(cache+";"+playsound+";"+showtoscale+";"+showsatic);

    }

    function startplay(){
        var obj = document.getElementById("EasyPlayerOcx");
        var url = document.getElementById("url").value;
        var rendertype = document.getElementById("rendertype").value;
        var name= document.getElementById("name").value;
        var password = document.getElementById("password").value;
        var hardDecode = document.getElementById("hardwareDecode").value;


        obj.Start(url, rendertype, name, password,hardDecode);
        config();

        //alert(url+";"+rendertype+";"+name+";"+password);

    }

        function stopplay(){
        //alert("Close()!!!!!");
        var obj = document.getElementById("EasyPlayerOcx");

        obj.Close();
    }

EasyPlayer

EasyPlayer是由EasyDarwin開源團隊開發和維護的一個流媒體播放器專案,目前有RTSP版和Pro版兩個版本,RTSP支援Windows(支援多視窗、包含ActiveXnpAPI Web外掛)、Android平臺,iOS平臺,視訊支援H.264H.265MPEG4MJPEG,音訊支援G711AG711UG726AAC,支援RTSP over TCP/UDP,支援硬解碼,是一套極佳的RTSP流播放元件;

EasyPlayer Pro版支援RTSP、RTMP、HTTP、HLS等各種流媒體協議播放,穩定、高效、可靠,支援Windows、Android、iOS!

獲取更多資訊

Copyright © EasyDarwin.org 2012-2017

EasyDarwin