|
IPTV機頂盒利用MediaPlayer播放RTSP視頻已成為可能。RTSP協(xié)議廣泛應(yīng)用于視頻流傳輸,要在機頂盒上實現(xiàn)RTSP播放,需確保系統(tǒng)支持MediaPlayer對RTSP的解析。開發(fā)者需編寫代碼,傳遞RTSP流地址給播放器并設(shè)置參數(shù)。這樣,用戶便可在機頂盒上流暢觀看RTSP視頻。
廢話不多說直接上代碼。如下:
- <%[url=home.php?mod=space&uid=103582]@[/url] page contentType="text/html; charset=utf-8" language="java"%>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)"/>
- <title>播放視頻</title>
- <script language="JavaScript" type="text/JavaScript">
- //這里最好找一個確定能播放的rtsp視頻地址
- var url="rtsp://220.191.136.24/88888913/16/20220419/275541798/275541798.ts";
- var mediaStr='';
- mediaStr = '[{mediaUrl:"'+ url +'",';
- mediaStr += 'mediaCode: "jsoncode1",';
- mediaStr += 'mediaType:2,';
- mediaStr += 'audioType:1,';
- mediaStr += 'videoType:1,';
- mediaStr += 'streamType:1,';
- mediaStr += 'drmType:1,';
- mediaStr += 'fingerPrint:0,';
- mediaStr += 'copyProtection:1,';
- mediaStr += 'allowTrickmode:1,';
- mediaStr += 'startTime:0,';
- mediaStr += 'endTime:20000,';
- mediaStr += 'entryID:"jsonentry1"}]';
- var mp = new MediaPlayer(); //新建一個mediaplayer對象 這個對象機頂盒底層有 這樣寫就行
- var instanceId = mp.getNativePlayerInstanceID(); //讀取本地的媒體播放實例的標識
- window.onload=function () { //進入界面就播放
- stop();
- start();
- }
- //初始話mediaPlay對象
- function initMediaPlay(){
- var playListFlag = 0; //Media Player 的播放模式。 0:單媒體的播放模式 (默認值),1: 播放列表的播放模式
- var videoDisplayMode = 1; //MediaPlayer 對象對應(yīng)的視頻窗口的顯示模式. 1: 全屏顯示2: 按寬度顯示,3: 按高度顯示
- var height = 720;
- var width = 1280;
- var left = 0;
- var top = 0;
- var muteFlag = 0; //0: 設(shè)置為有聲 (默認值) 1: 設(shè)置為靜音
- var subtitleFlag = 0; //字幕顯示
- var videoAlpha = 0; //視頻的透明度
- var cycleFlag = 0;
- var randomFlag = 0;
- var autoDelFlag = 0;
- var useNativeUIFlag = 1;
- //初始話mediaplayer對象
- mp.initMediaPlayer(instanceId,playListFlag,videoDisplayMode,
- height,width,left,top,muteFlag,useNativeUIFlag,subtitleFlag,videoAlpha,cycleFlag,randomFlag,autoDelFlag);
- mp.setSingleMedia(mediaStr); //設(shè)置媒體播放器播放媒體內(nèi)容
- mp.setAllowTrickmodeFlag(0); //設(shè)置是否允許trick操作。 0:允許 1:不允許
- mp.setVideoDisplayMode(0);
- mp.setVideoDisplayArea(left,top,width,height); //視頻在body里的位置 這里是絕對定位的坐標
- mp.setNativeUIFlag(0); //設(shè)置播放器本地UI顯示功能 0:允許 1:不允許
- mp.setAudioTrackUIFlag(1);
- mp.setMuteUIFlag(1);
- mp.setAudioVolumeUIFlag(1);
- mp.refreshVideoDisplay();
- // mp.setVolume(30); //初始化音量
- }
- //進入頁面后直接播放
- function start(){
- initMediaPlay();
- play();
- }
- // start();
- function serverStop(){ //播放結(jié)束 這里是播放結(jié)束后重新在播放一遍
- stop();
- start();
-
- }
-
- function mute(){ //靜音
- var plflag=mp.getMuteFlag();
- if(plflag == 0){
- mp.setMuteFlag(1);
- }else{
- mp.setMuteFlag(0);
- }
- }
- //播放
- function play(){
- // playStat = "play";
- mp.playFromStart();
- }
- //停止播放
- function stop(){
- mp.stop();
- }
- function resume(){
- speed = 1;
- // playStat = "play";
- mp.resume();
- }
- function volUp(){ //音量+
- var vol = mp.getVolume();
- vol = (vol <= 90 ? vol+10 : 100);
- mp.setVolume(vol);
- }
- function volDown(){ //音量-
- var vol = mp.getVolume();
- vol = (vol >= 10 ? vol-10 : 0);
- mp.setVolume(vol);
- }
- function fastForward() {//快進
- speed = speed * 2;
- if(speed > 32)
- speed = 2;
- mp.fastForward(speed);
- setTimeout(function(){resume()},5*1000);
- }
- function fastRewind(){//快退
- speed = speed * 2;
- if(speed > 32)
- speed = 2;
- mp.fastRewind(-speed);
- setTimeout(function(){resume()},5*1000);
- }
- function swtichjy(){//靜音
- if(plflag == 0 ){
- plflag=1;
- mp.setMuteFlag(1);
- }else{
- plflag=0;
- mp.setMuteFlag(0);
- }
- }
- function goUtility() {//機頂盒事件響應(yīng) 有的機頂盒不會執(zhí)行影響不大
- eval("eventJson = " + Utility.getEvent());
- var typeStr = eventJson.type;
- switch(typeStr) {
- case "EVENT_MEDIA_BEGINING":
- return false;
- case "EVENT_MEDIA_ERROR":
- mediaError(eventJson);
- return false;
- case "EVENT_MEDIA_END":
- serverStop();
- return false;
- default :
- break;
- }
- return true;
- }
- function mediaError(eventJson) {//出現(xiàn)錯誤
- var code = eventJson.error_code;
- var type = eventJson.error_message;
- }
- function checkMvKey(keycode) {
- switch(keycode) {
- case 768: //播放事件||有的機頂盒不會執(zhí)行 影響不大
- goUtility();
- break;
- case 259://聲音大
- volUp();
- break;
- case 260://聲音小
- volDown();
- break;
- case 264://快進
- fastForward();
- break;
- case 265://快退
- fastRewind();
- break;
- case 261://靜音
- swtichjy();
- mute();
- break;
- // case 263:
- // pauseOrPlay();
- // break;
- case 34://下,到尾
- mp.gotoEnd();
- break;
- case 8: //返回
- goBack();
- break;
- }
- }
- function goBack() { //我這里寫 是我為了方便測試 回退到我的主界面里面去
- window.location.href = '../../page_home.jsp?version=1';
- }
- // iPanel.focusWidth = "-1";
- function grabEvent(evt) { //遙控器 響應(yīng)事件
- evt = evt?evt:window.event;
- var keycode = evt.keyCode; //遙控器對應(yīng)的數(shù)字
- if(keycode == 8){ //遙控器返回鍵
- goBack();
- return false;
- }
- checkMvKey(keycode);
- }
- document.onkeypress=grabEvent;
- document.onirkeypress=grabEvent;
- </script>
- </head>
- <body onUnload="stop();" bodybgcolor="transparent" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="background-color: transparent;position:absolute;z-index:0;" >
- </body>
- </html>
-
- 說明:onUnload="stop();" 這里是離開頁面的時候需要停止播放 很好理解哈。對了,別再瀏覽器上測試哈,瀏覽器不支持rtsp的
-
復制代碼
相關(guān)閱讀:
電視盒子adb怎么打開 解鎖電視盒子ADB常用命令
機頂盒adb調(diào)試怎么用 機頂盒開啟adb教程
小米電視機如何進入開發(fā)者模式 小米盒子怎么打開adb模式
電視屏幕局部發(fā)黑是什么原因 2024電視屏幕故障怎么修
|
上一篇: 廣東UNT403G刷機如何開啟ADB?有誰會?下一篇: 電視盒子刷機卡在這是什么情況?
|