出于某种原因,在Safari(没有其他主要浏览器)中,当我通过PHP通过JavaScript中的Audio上下文提供MP3时,MP3 的持续时间始终返回为。infinity
在过去的几天里,这个问题困扰着我,在阅读了一些链接(包括该链接)以寻找解决方案之后,我根本没有进步。
$path = "path/to/file.mp3";
$file = [
"path" => $path,
"size" => filesize($path),
"bitrate" => $bitrate
];
header("Accept-Ranges: bytes", false);
header("Content-Length: " . $file["size"], false);
header("Content-Type: audio/mpeg", false);
echo file_get_contents($file["path"]);
exit;
Run Code Online (Sandbox Code Playgroud)
var audio = new Audio(url);
// returns infinite on Safari
// returns 312.27311 on Chrome and Firefox (which is correct)
console.log(audio.duration);
Run Code Online (Sandbox Code Playgroud)
我仍未弄清楚为什么这个问题仅出现在Safari中,以及首先导致它的原因,因此,如果有人有解决方案,将不胜感激!
干杯。