600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 记录VLCweb插件安装使用过程中遇到的问题及解决方法

记录VLCweb插件安装使用过程中遇到的问题及解决方法

时间:2024-07-21 06:10:57

相关推荐

记录VLCweb插件安装使用过程中遇到的问题及解决方法

由于要在web进行rtsp流的直播,在网上找到vlc插件可以实现(目前只有IE支持activex,所以只能用IE浏览器,我用的是IE11,操作系统为英文版win7,64位)。果断下载安装,查找vlc的开发资料。程序写好后发现时延很严重,项目要求时延小于300毫秒,通过修改network-caching参数时延可以接受,是否真的小于300毫秒未测试。在开发过程中还遇到了会自动开新窗口显示视频的问题(排查后发现是因为没有vlc句柄,视频找不到显示的地方,所以自己弹窗显示),通过优化代码得到解决。现将代码粘贴如下:

<html>

<head>

<META http-equiv="Content-Language" content="zh-cn">

<META http-equiv="Content-Type" content="text/html; charset=utf-8">

<META http-equiv="Pragma" content="no-cache">

<META content="MSHTML 6.00.2800.1106" name="GENERATOR">

<link href="/assets/css/bootstrap.css" rel="stylesheet">

<link href="/assets/css/theme.css" rel="stylesheet">

<link href="/assets/css/font-awesome.min.css" rel="stylesheet">

<script language="javascript" type="text/javascript" src="/js/base64.min.js" ></script>

<script language="javascript" type="text/javascript" src="/js/Common.js" ></script>

<script language="javascript" type="text/javascript" src="/js/PublicModule.js" ></script>

<script type="text/javascript" charset="UTF-8">

function init()

{

if(!initStatus())

return;

var vlc=document.getElementById("vlc");

var options = [":network-caching=300"];

var rtspSource = "rtsp://"+window.location.hostname+"/main";

var itemId = vlc.playlist.add(rtspSource,"",options);

if( itemId != -1 )

{

// play MRL

vlc.playlist.playItem(itemId);

}

else

{

alert("cannot play at the moment !");

}

}

function initStatus()

{

if (!isWindowsPlatform())

return true;

var obj;

var state=false;

// 判断VLC控件

try {

obj = new ActiveXObject("VideoLAN.VlCPlugin.2");

//var xx = typeof(obj);

if (typeof(obj) != 'undefined')

state = true;

delete obj;

obj = null;

}

catch (e) {obj = null;}

// end 判断VLC控件

if(!state)

{

document.getElementById("statusctl").style.display = "block";

document.getElementById("player").style.display = "none";

}

return state;

}

function unload(){

obj = document.getElementById("vlc");

if(obj != null){

obj.playlist.stop();

obj.playlist.clear();

delete obj;

obj = null;

}

}

</script>

</head>

<body onUnload="unload();" style="padding:1px;">

<div id="player" style="display:block;">

<object type='application/x-vlc-plugin' id='vlc'classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921' codebase="/pub/videolan/vlc/latest/win32/axvlc.cab" width="1280" height="800">

<param name='mrl' value='' />

<param name='volume' value='50' />

<param name='autoplay' value='true' />

<param name='loop' value='false' />

<param name='fullscreen' value='false' />

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

<param name="toolbar" value="true"/>

</object>

</div>

<br><br>

<div id="statusctl" style="text-align:center;display:none;">

<a href='/download/vlc-2.2.4-win32.exe'>下载插件</a>

</div>

<!--

<input type="button" value="停止" οnclick="stop();" id="control_button">&nbsp;&nbsp;

-->

<script type="text/javascript" src="/assets/js/jquery.min.js"></script>

<script>

$(document).ready(function(){

init();

})

</script>

</body>

</html>

下面说下自测过程中遇到的问题:

1、播放10多分钟后vlc和IE会长时间没反应,只能关闭进程结束。

解决方法:当时使用的是vlc3.0.8版本,换成3.0.10问题依然;改成低版本后解决,实测2.2.1和2.2.4都可以,其它版本未测试。

2、在我自己的电脑上程序运行正常,在别人的电脑上安装vlc后发现控件出不来。

详细情况:安装vlc后IE显示已加载并启用了控件(IE对运行activex的相关设置网上有很多,我就不赘述),但程序判断后显示控件未安装。

解决方法:英文版的64位win7应该安装64位的vlc;中文版的64位win7应该安装32位的vlc。

附:vlc各版本下载链接.tw/vlc/vlc/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。