2

HTML5 AudioElement を使用して .mp3 ファイルを再生していますが、位置をスキップできないことに気付きました。wwwルートの外からPHP経由でファイルを取得しています。

私はHTMLコードを使用しています:

<audio src="" controls id="appAudio" style="width:1000px;margin-top:10px"></audio>

JavaScript コード:

document.getElementById('appAudio').src= 'http://localhost/index.php/player/get_audio_via_php/1';

PHP コード:

    $file = "/myfolder/1.mp3";
    header('Content-Type: audio/mpeg');
    header('Content-Length: ' . filesize($file));

    return file_get_contents($file);

私が言ったように、オーディオファイルは再生されますが、位置をスキップすることはできません。これに対する解決策はありますか?

ありがとうございました

4

3 に答える 3

4

ブラウザのキャッシュにファイルがない場合、「スキップ」すると、ブラウザは「range」ヘッダーを含む新しいリクエストを送信します。PHP ファイルは、このヘッダーを処理する必要があります。

これの意味は:

  1. 範囲ヘッダーを取得して解析する
  2. ステータス コード 206 と対応する範囲ヘッダーでリクエストに応答する
  3. 必要なバイトのみ出力
于 2012-11-19T15:44:18.023 に答える
3

php を介した mp3 ファイルの提供に関連するこの投稿をご覧ください。

答えは、 content-type を変更していくつかのタイプを含めることを提案しています。

header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
于 2012-11-19T15:08:32.950 に答える