2013-02-28 72 views
0

我正在通過listen.php請求的read_file.php流文件* .mp3文件。字節範圍不在HTML5音頻的請求標頭中

read_file.php - 正確處理字節範圍,並提供具有正確頭像的文件的正確字節範圍。

listen.php - 包含與read_file.php的HTML5音頻元素ID = XX爲SRC

XX.mp3 - 一個大的MP3文件,我希望在大塊服務。

由HTML5音頻元素觸發的請求似乎總是在請求標頭中發送請求的字節範圍。在第一次加載時,標題包含「字節範圍:0-」。響應頭看到這一點,並提供一個文件塊。

結果是:

尋求未來的工作如預期。找回(1)被取消,或(2)從文件的開始處開始,具體取決於我如何選擇read_file.php中的邏輯來處理NULL字節範圍。

任何指針/想法,或敢說我...答案?

相關Chrome的錯誤:http://pastebin.com/raw.php?i=2pBjnF00

+0

可以粘貼的響應頭? – idbehold 2013-03-01 00:03:42

+0

當它工作(只是讓它玩,不尋求)這是返回的標題:http://pastebin.com/raw.php?i=v2KvXTMX – circusdei 2013-03-01 15:03:15

+0

那麼,我注意到的一件事是,你的'Content-Range'頭關閉1.'bytes 0-17178539/17178539'連字符後面的數字是字節範圍的最後一個**索引**。它應該是'17178538'。 – idbehold 2013-03-01 17:35:06

回答

0

留給後人,這裏是最後的(工作)形式標題:

header("Content-Type: audio/mpeg"); 
header('Cache-Control: '); //blank for IE 
header('Pragma: '); // blank for IE 
header('Accept-Ranges: bytes'); 
header('Content-Length:'.$length); 
header("Content-Range: bytes $begin-".$end."/$length"); 
header("Content-Disposition: inline; filename=$filename"); 
header("Content-Transfer-Encoding: binary"); 
header("Last-Modified: $time"); 

header('Connection: close');