多くの Audio 要素を含むページがあり、そのうちのいくつかは非常に長い (最大 2 時間) という状況があります。本質的に、それらは次のように作成および制御されています。
var a = new Audio();
a.preload = 'metadata';
a.src = 'long-track.mp3';
a.play();
再生すると、ブラウザー (この場合は Chrome) が範囲要求を正しく行い、サーバーは「206 Partial Content」を返します。これは、一度に約 2 分のデータのように見えます。約 2 MB のデータが読み込まれると、データの要求が停止します。ここまでは順調ですね。次に、これが実行されます。
a.pause();
これにより、ブラウザは残りのファイル全体をダウンロードします。(!!?!~@!!!?) 明らかに、ユーザーが数トラックの最初の数秒を聞くことにした場合、これは問題になる可能性があります。不要なデータをギガバイト単位でダウンロードし始めることになります。
ファイル全体を強制的にバッファリングする方法を尋ねる他の質問を見てきましたが、実際には正反対のことを望んでいます。