我正在尝试将 vlc 播放器(版本 1.1.8、直播、Internet Explorer)添加到我的网页,并让用户能够通过单击其中一个按钮来更改频道。
<object type="application/x-vlc-plugin"
id="vlcplayer"
width="720px"
height="540px"
classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921">
<param name="Src" value= "udp://@239.0.10.115:1234">
<param name="volume" value="100" />
<param name="autoplay" value="true" />
<param name="loop" value="false" />
<param name="fullscreen" value="true" />
</object>
上面的代码工作正常,我可以听到和看到视频,但我不知道如何在单击时更改 Src 值(udp/通道)。我尝试使用以下代码:
document.getElementById('vlcplayer').src = 'udp://@239.0.10.105:1234'
但这不起作用,因为 .src 似乎未定义。
Q1。有没有办法改变对象的src?请问我可以举个例子吗?
我找不到方法,所以每当单击频道按钮时,我都会使用 src 作为变量在 javascript 中创建对象:
uri = 'udp://@239.0.10.115:1234';
VLCPlayerObject = '<object type="application/x-vlc-plugin" id="vlcplayer" width="720px"height="540px" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"> <param name="Src" value= '+uri+'> <param name="volume" value="100" /><param name="autoplay" value="true" /><param name="loop" value="false" /><param name="fullscreen" value="true" /></object>';
document.getElementById('videoDisplayDivID').innerHTML=VLCPlayerObject;
然而,这段代码的问题是我看不到视频,但我能听到它,而且我能听到频道的变化。
Q2。这是一些软件问题还是我的编码错误?我如何解决它?
更新
我尝试在新的测试版本中进行以下更改
在对象中我添加了一个 id:
<param name="Src" value= "udp://@239.0.10.112:1234">
改为
<param name="Src" value= "udp://@239.0.10.112:1234" id ="videoSrc">
然后在javascript代码中:
var temp = document.getElementById("videoSrc").getAttribute("value");
alert("old udp: " + temp);
var sourceParameter= document.getElementById("videoSrc");
sourceParameter.setAttribute("value", "udp://@239.0.10.115:1234");
var temp2 = document.getElementById("videoSrc").getAttribute("value");
alert("new udp: " + temp2);
此代码确实显示了 udp,并且它表明 udp 在函数运行后确实发生了变化。但是,尽管 udp 更改了视频,但由于某种原因实际上并没有切换到该频道。(我已经检查过频道是否不同)
Q3。如何让视频也更新?
已回答
向播放列表添加了一个项目(原始 src 值设置为播放列表项目 0 btw)
var vlc = document.getElementById("vlcplayer");
vlc.playlist.add("udp://@239.0.10.115:1234");
vlc.playlist.playItem(1);
现在我只需要正确编码它以适用于每个频道。