19

現在、HTML5 オーディオ プレーヤーを使用して、(モバイル) ブラウザー経由でオーディオ ストリーム (24 時間年中無休のラジオ ストリーム) を提供する作業を行っています。ストリームへの読み込みと再生は正常に機能します。

主な問題は、HTML5<audio>タグがアクティブでなくてもコンテンツをダウンロード (バッファリング) し続けることです。ほとんどのモバイル ユーザーはデータ使用料を支払うため、これはモバイル ユーザーにとって大きな問題になる可能性があります。これまでのところ、これを防ぐためにクロスブラウザーで機能する適切なソリューションを見つけることができませんでした.

私はこれまでに試しました:

  1. 一時停止が押されたときにソースをアンロードします。< クロスブラウザでは動作しません
  2. オーディオ プレーヤー要素を削除し、新しいものをロードします。これは機能しますが、正直なところ、これは非常に単純なタスクを実行するための非常にハックな方法です。

この問題を抱えているのは私だけではないと確信しているので、この問題全体で何か見落としがあるのではないかと単純に思っていました.

4

3 に答える 3

14

<audio>要素には属性が含まれpreloadます。これは、「none」または「metadata」に設定できます。これにより、オーディオのプリロードが防止されます。

ソース: https://developer.mozilla.org/en/docs/Web/HTML/Element/audio

于 2016-04-22T11:20:52.343 に答える
2

次の手順を実行して、エラーなしでバッファリング ロードを停止できます。

var blob = new Blob([], {type: "audio/mp3"});
var url = URL.createObjectURL(blob);
audio.src = _url;

または、短縮:

audio.src = URL.createObjectURL(new Blob([], {type:"audio/mp3"});

これで、audio タグがロードを試行するのに不適切な URL である "" がロードされなくなりました。代わりに、オーディオを再生するためのデータをまったく含まない Blob から作成された実際の URL をロードしています。

于 2016-02-25T04:35:32.013 に答える
2

上記の問題に対する実行可能な解決策を見つけました。詳細な説明はこちらにあります: https://stackoverflow.com/a/13302599/1580615

于 2012-11-09T05:39:54.673 に答える