0

次のオーディオ要素を想定します

<audio controls>
    <source src="horse.ogg" type="audio/ogg">
    <source src="horse.mp3" type="audio/mpeg">
</audio>

今、私はjavascriptで同じことをしたいと思います

var audio new Audio( 'horse.mp3' ) ;

問題は、「オーディオ」オブジェクトが再生できるものを決定できるように、「ogg」をどのように提供できるかということです。

4

3 に答える 3

1

Javascript クラスはフォールバックをサポートしていないため、次の 2 つのオプションがあります。

  1. クライアントがコーデックのタイプを再生できるかどうかを確認し、 Audioサポートに応じて を作成します。
  2. DOM 要素を作成し、ページに挿入します。

エンコーディングがサポートされているかどうかを確認するには;

var audio = new Audio();
if (audio.canPlayType("audio/ogg; codecs=vorbis")) {
    audio = new Audio("file.ogg");
} else ...

DOM インジェクション;

var el = document.createElement('audio');
el.innerHTML = '<source src="file.ogg" type="audio/ogg" /><source src="file.mp3" type="audio/mp3" />';
document.body.appendChild(el);
于 2013-09-17T09:21:49.613 に答える
1

createElementおよびの JS の任意のタグに相当しsetAttributeます。

var audio = document.createElement('audio');
audio.setAttribute('controls', 'controls');

var ogg = document.createElement('source');
ogg.setAttribute('src', 'horse.ogg');
ogg.setAttribute('type', 'audio/ogg');

var mp3 = document.createElement('source');
mp3.setAttribute('src', 'horse.mp3');
mp3.setAttribute('type', 'audio/mp3');

audio.appendChild(ogg);
audio.appendChild(mp3);
于 2013-09-17T09:18:02.450 に答える
1

audio|video.canPlayType(type) を使用

例 :

var canPlayMpeg = audio.canPlayType("audio/mpeg");

また、buzz.js http://buzz.jaysalvat.comのような lib を使用することもできます。

于 2013-09-17T09:18:06.190 に答える