0

私はこれを検索し、問題の原因だけに単純化しました。

<audio id="SoundHandle" style="display:none" />
<script type="text/javascript">
    SoundHandle = document.getElementById('SoundHandle');
    SoundHandle.src = 'test.ogg';
    SoundHandle.play();
</script>

上記のコードはChromeで正常に動作し、適切なチェックなどを行っていたときは、IE 9のMP3で動作しました。トップページに載せました。現在の Firefox では、サウンドを再生しないことに加えて、script タグの下にあるものはページにレンダリングされません。

誰もこれについて何か知っていますか?

4

2 に答える 2

0

私の友達は働いています:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
    var mediaElement = document.getElementById("myMediaElementID");
    mediaElement.pause();
    mediaElement.src = "";
</script>
</head>
<body>
<audio id="demo" src="song.ogg"></audio>

<div>
  <button onclick="document.getElementById('demo').play()">Play the Audio</button>
  <button onclick="document.getElementById('demo').pause()">Pause the Audio</button>
  <button onclick="document.getElementById('demo').volume+=0.1">Increase Volume</button>
  <button onclick="document.getElementById('demo').volume-=0.1">Decrease Volume</button>
</div> 
</body>
</html>
于 2012-07-17T08:14:50.370 に答える
0

いくつかのこと:

ここで発生している可能性のある JS 固有の事柄がいくつかあり、同様に進行している可能性があるサーバー固有の事柄もいくつかあります。

上記のすべてを回避するには、まずこれを試してください。

<audio id="player" controls>
    <source src="test.ogg" type='audio/ogg; codecs="vorbis"'>
</audio>

これで再生の問題が解決するかどうかを確認してください。そうであれば、JavaScript の問題に対処している可能性があります。

しかし、そのプレーヤーが 100% HTML であってもオーディオをまったく再生できない場合は、サーバーに問題があります。

犯人は二人。1 つ目は MIME タイプです。MIME タイプは、そのソース要素の「type」属性に表示されるものの最初の部分です。

それらは、ファイル内のデータをどのように読み取るべきかをプログラムに伝えます。昔は、CSS (type="text/css") や JS (type="text/javascript") で見られました。

それらについては、まったく問題ではありません。ブラウザーは、CSS で何をすべきか、JS で何をすべきかを知っています。

FireFoxでは、適切な MIME タイプで .ogg/.oga/.ogv ファイルを提供するようにサーバーを設定する必要があります。つまり、FF はそれらをテキスト ファイルではなく OGG ファイルのように扱うことを知る必要があります。

こちらをご覧ください: https://developer.mozilla.org/en/Configuring_servers_for_Ogg_media

それがデバッグの出発点になるはずです。その後、JavaScript を話すことができます。

Chrome で機能する理由は、サーバーが「text/html」ファイルであることを示唆しているにもかかわらず、Chrome が魔法のように .ogg ファイルであると推測するためです。

于 2012-07-17T07:32:01.300 に答える