|
IPTV机顶盒利用MediaPlayer播放RTSP视频已成为可能。RTSP协议广泛应用于视频流传输,要在机顶盒上实现RTSP播放,需确保系统支持MediaPlayer对RTSP的解析。开发者需编写代码,传递RTSP流地址给播放器并设置参数。这样,用户便可在机顶盒上流畅观看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 对象对应的视频窗口的显示模式. 1: 全屏显示2: 按宽度显示,3: 按高度显示
- var height = 720;
- var width = 1280;
- var left = 0;
- var top = 0;
- var muteFlag = 0; //0: 设置为有声 (默认值) 1: 设置为静音
- 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); //设置媒体播放器播放媒体内容
- mp.setAllowTrickmodeFlag(0); //设置是否允许trick操作。 0:允许 1:不允许
- mp.setVideoDisplayMode(0);
- mp.setVideoDisplayArea(left,top,width,height); //视频在body里的位置 这里是绝对定位的坐标
- mp.setNativeUIFlag(0); //设置播放器本地UI显示功能 0:允许 1:不允许
- mp.setAudioTrackUIFlag(1);
- mp.setMuteUIFlag(1);
- mp.setAudioVolumeUIFlag(1);
- mp.refreshVideoDisplay();
- // mp.setVolume(30); //初始化音量
- }
- //进入页面后直接播放
- function start(){
- initMediaPlay();
- play();
- }
- // start();
- function serverStop(){ //播放结束 这里是播放结束后重新在播放一遍
- 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() {//机顶盒事件响应 有的机顶盒不会执行影响不大
- 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) {//出现错误
- var code = eventJson.error_code;
- var type = eventJson.error_message;
- }
- function checkMvKey(keycode) {
- switch(keycode) {
- case 768: //播放事件||有的机顶盒不会执行 影响不大
- 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) { //遥控器 响应事件
- evt = evt?evt:window.event;
- var keycode = evt.keyCode; //遥控器对应的数字
- 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的
-
复制代码
相关阅读:
电视盒子adb怎么打开 解锁电视盒子ADB常用命令
机顶盒adb调试怎么用 机顶盒开启adb教程
小米电视机如何进入开发者模式 小米盒子怎么打开adb模式
电视屏幕局部发黑是什么原因 2024电视屏幕故障怎么修
|
上一篇: 广东UNT403G刷机如何开启ADB?有谁会?下一篇: 电视盒子刷机卡在这是什么情况?
|