高起播低延時RTSP網頁無插件流媒體播放器EasyPlayer-RTSP插件使用說明


鑒於大家對於EasyPlayer-RTSP插件的使用還不太熟悉,特此寫一篇插件的使用文檔,供大家參考;EasyPlayer-RTSP插件有兩種,一種是基於IE的ActiveX控件,一種是基於FireFox(也支持多瀏覽器)的npAPI插件;

兩種插件均包含源碼,由於FireBreath框架生成代碼比較多,npAPI插件只包含關鍵代碼,后續會提供專門講解FireBreath生成EasyPlayer-RTSP 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();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM