Quindi, ho uno script php che invia il mio file mp3 al tag audio di html5. Il problema è che in Safari, il tag audio.duration non funziona e restituisce infinito. Se imposto il src dell'audio direttamente nel file, tutto funziona correttamente. Ma non voglio che i miei utenti vedano il percorso del file.audio.duration restituisce Infinity su Safari quando viene fornito mp3 da PHP
Ad ogni modo, questo è il modo in cui sto inviando le mie intestazioni da PHP.
Ho già provato ad avere gli intervalli di contenuti. Questo non ha aiutato.
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";
}
Hi @smurf vedo anche la prima chiamata al collegamento audio con "byte 0-1" nell'intestazione Range. Ma puoi essere più specifico di cosa intendi con "il ritorno"? Cosa c'è, in questo caso? Posso restituire un byte usando l'intestazione Content-Range nella risposta. È questo che vuoi dire? – Hewins