所以,我有一個php腳本,它將mp3文件發送到html5的音頻標籤。問題是,在Safari中,audio.duration標記不起作用並返回無窮大。如果我將音頻的src直接設置爲文件,那麼一切正常。但我不希望我的用戶看到文件的路徑。audio.duration在從PHP提供mp3時返回Infinity on Safari
無論如何,這就是我從PHP發送頭文件的方式。
我已經嘗試了內容範圍。這沒有幫助。
if (file_exists($filename)) {
$fp = fopen($filename, 'r');
$etag = md5(serialize(fstat($fp)));
fclose($fp);
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg");
header('Content-Length: ' . (string)(filesize($filename)));
header('Content-Disposition: inline; filename="' . $filename . '"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
header('Etag: ' . $etag);
//GetContentRange($filelength);
readfile($filename);
exit;
}
else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
}
嗨@smurf我也看到了第一次調用音頻鏈接的範圍標頭「字節0-1」。但是,你能更具體地表達「回報它」的含義嗎?這是什麼,在這種情況下?我可以通過在響應中使用Content-Range標題返回一個字節。你是這個意思嗎? – Hewins 2017-10-05 04:18:17