vlc プレーヤー (バージョン 1.1.8、ライブ ストリーム、インターネット エクスプローラー) を Web ページに追加し、ユーザーがいずれかのボタンをクリックしてチャンネルを変更できるようにしようとしています。
<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/channel) を変更する方法がわかりません。私はコードを使用しようとしました:
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 として設定されます)
var vlc = document.getElementById("vlcplayer");
vlc.playlist.add("udp://@239.0.10.115:1234");
vlc.playlist.playItem(1);
あとは、すべてのチャネルで機能するように適切にコーディングする必要があります。