0

次のような複数のタグを含む Web ページがあります。

<audio controls="controls" preload="metadata">
    <source type="audio/mpeg" src="file1.mp3"></source>
</audio>

各タグは異なるファイルを再生し、各 mp3 ファイルはかなり長いです (つまり、完全にダウンロードされるまでに最大 1 分かかります)。

4 つ以上のタグがある場合、最初の 4 つだけが IE9 に表示されます。最初の 4 つのオーディオ プレーヤーのいずれかがオーディオ ファイルのロードを完了するたびに、他のプレーヤーが 1 つずつ表示されます。

実際、ページ内のハイパーリンクをクリックしても、オーディオ プレーヤーのいずれかがロードを停止するまで、適切な HTTP リソースはロードされません。オーディオ タグによって、同時 HTTP 接続数に厳しい制限が設定されているようです。通常、IE9 の制限ははるかに高いため、これは奇妙に思えます。

その他の注意事項:

  • オーディオファイルは、それ自体で正常にロードおよび再生されます

    • ファイルを同時に再生する必要はありません。異なるファイルの複数のオーディオ プレーヤーを表示するページが必要なだけです。

    • preload 属性に異なる値 (none | metadata | auto) を使用してみました。'none' は IE9 でオーディオ プレーヤーを完全に非表示にし、メタデータと auto は同じ問題を示します。

    • この回答では、IE9 では最大 40 人のプレイヤーが問題ないはずですが、4 人を超えることはできません。

どんな考えでも大歓迎です、ありがとう。

4

1 に答える 1

2

実際、オーディオタグのプリロード属性が「メタデータ」に設定されている場合、IE9にはいくつかの不具合があります。

より応答性の高い動作のための可能な回避策は次のとおりです。

  1. 設定preload = "none"

  2. タグを画像でラッピング<audio>するか、divを背景画像でラッピングする

  3. 「クリック」イベントを画像/divに添付すると、次のようにトリガーされます。document.getElementById('audio1').play()

それがあなたのニーズに合うことを願っています。

于 2012-06-17T12:28:42.647 に答える