4

getStream.html特定の URL からストリームを取得して表示する html ファイル ( ) があります。コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Vids</title>
    <link href="main.css" rel="stylesheet" type="text/css" />
</head>

<body onload='player("http://mystreamaddress:8080");'>

<div id="player">
    <object type="application/x-vlc-plugin" 
      id="vlcplayer" 
      width="864px"
      height="540px" 
      classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921">  
      <param name="Volume" value="100" />
      <param name="AutoPlay" value="true" />
      <param name="AutoLoop" value="false" />
    </object>
</div>

<div id="controls">
  <input type="button" onclick="play();" value="Play" />
  <input type="button" onclick="pause();" value="Pause" />
  <input type="button" onclick="stop();" value="Stop" />
  <input type="button" onclick="mute();" value="Mute" />
</div>

<script type="text/javascript" language="javascript">
    var vlc = document.getElementById("vlcplayer");
    function player(vid) {
    try {
        var options = new Array(":aspect-ratio=16:10", "--rtsp-tcp", ":no-video-title-show");
      var id = vlc.playlist.add(vid,'Video',options);
      vlc.playlist.playItem(id);
      vlc.video.fullscreen = true;
      //vlc.video.toggleFullscreen();
    }
    catch (ex) {
      alert(ex);
    }
    }       
    function mute(){
    vlc.audio.toggleMute();
  }

    function play(){
    vlc.playlist.play();
  }

    function stop(){
    vlc.playlist.stop();
  }

    function pause(){ 
    vlc.playlist.togglePause();
  } 

  function fullscreen(){
    vlc.video.toggleFullscreen();
  }

</script>

</body>

</html>

PC にこのページがあり、(IE 7/8/9 を使用して) 開いてみると、すべて正常に動作しますが、このページをサーバーに配置し、次のような URL からアクセスすると:http://myserver/direcortyOfMyhtmlFile/getStream.html

ページが開かれ、ボタンが読み込まれますが、次のエラーが表示されます。

IE8 および IE9 の場合: IE9、IE8でのエラー

英語では、「プロパティ 'add' の値を取得できません: オブジェクトが null または定義されていません」のようになります。

IE7 の場合: ここに画像の説明を入力

これらのエラーは、HTML 内のオブジェクトを参照しているように見えますが、同じページがローカルで問題なく動作するため、これは奇妙です。

4

4 に答える 4

7

test.htmlVLC WebAPI の使用方法に役立ちます。

test.htmlVLCがインストールされたディレクトリにあります。

例えば C:\Program Files (x86)\VideoLAN\VLC\sdk\activex\test.html

次のコードは からの引用test.htmlです。

HTML:

<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" width="640" height="360" id="vlc" events="True">
  <param name="MRL" value="" />
  <param name="ShowDisplay" value="True" />
  <param name="AutoLoop" value="False" />
  <param name="AutoPlay" value="False" />
  <param name="Volume" value="50" />
  <param name="toolbar" value="true" />
  <param name="StartTime" value="0" />
  <EMBED pluginspage="http://www.videolan.org"
    type="application/x-vlc-plugin"
    version="VideoLAN.VLCPlugin.2"
    width="640"
    height="360"
    toolbar="true"
    loop="false"
    text="Waiting for video"
    name="vlc">
  </EMBED>
</object>

JavaScript:

から vlc オブジェクトを取得できますgetVLC()
IE 10 と Chrome で動作します。

function getVLC(name)
{
    if (window.document[name])
    {
        return window.document[name];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[name])
            return document.embeds[name];
    }
    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
    {
        return document.getElementById(name);
    }
}

var vlc = getVLC("vlc");

// do something.
// e.g. vlc.playlist.play();
于 2015-01-18T08:05:32.407 に答える
3

私はこれを見つけました:

<embed type="application/x-vlc-plugin"
pluginspage="http://www.videolan.org"version="VideoLAN.VLCPlugin.2"  width="100%"        
height="100%" id="vlc" loop="yes"autoplay="yes" target="http://10.1.2.201:8000/"></embed>

私はあなたのコードのどこにもそれを見ません....必要なのはそれだけで、ターゲットはビデオの場所になると思います...

vlc プラグインの詳細はこちら:
http://wiki.videolan.org/Documentation%3aWebPlugin#Input_object

もう 1 つ確認すべきことは、ビデオ ファイルのアドレスが正しいことです。

于 2013-01-17T10:24:15.427 に答える
1

残念ながら、IE と VLC は現在実際には機能しません... vlc フォーラムでこれを見つけました:

VLC included activex support up until version 0.8.6, I believe. At that time, you could
access a cab on the videolan and therefore 'automatic' installation into IE and Firefox
family browsers was fine. Thereafter support for activex seemed to stop; no cab, no
activex component.

VLC 1.0.* once again contains activex support, and that's brilliant. A good decision in
my opinion. What's lacking is a cab installer for the latest version.

これは基本的に、あなたがそれを機能させる方法を見つけたとしても、あなたのサイトのビデオを IE で見ようとする人は、IE で機能させるために VLC プレーヤー プログラム全体をダウンロードしてインストールする必要があり、ユーザーはおそらくそうしないことを意味します。それをしたい。ビデオアドレスを正しく入力していない可能性がありますが、ボーイフレンドのコンピューターのfirefoxまたはIE8でコードを動作させることができません...ビデオ出力がないというメッセージが表示されます...

VLC がインストールされているため、おそらくローカルでは機能すると思いますが、サーバーにはインストールされていません。残念ながら、おそらく Windows メディア プレーヤーまたはそれに類似したものを使用する必要があります (Microsoft は、人々に自分のものを強制的に使用させることに長けています!)。

ご参考までに、cab ファイルが存在しないのは、Active-X コントロールに署名するコストがかかるためのようです。

あなたのページで、Firefox と Chrome のユーザーには VLC を使用し、IE のユーザーには Windows Media Player を使用するのはかなり簡単です。

于 2013-01-18T06:34:46.277 に答える