我通过PHP提供.mp3文件并将它们嵌入audio
html5元素中。我不能让这个适用于任何iOS设备(目前在iPhone 6s上测试iOS 9)。基本上当你按下播放时它会显示“直播”并且没有音频播放。如果我尝试下载文件而不是快速打开(我认为)并且什么都不做。
以下是我如何提供文件
$fileName = $queryParams['name'];
$file = __DIR__ . "/../content/$fileName";
if (file_exists($file)) {
$len = filesize($file);
$shortlen = $len - 1;
header('Content-Range: bytes 0-'.$shortlen.'/'.$len);
header('Content-Description: File Transfer');
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
ob_clean();
flush();
readfile($file);
exit;
}
这就是浏览器开发人员工具中的样子
Accept-Ranges:bytes
Cache-Control:must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Description:File Transfer
Content-Disposition:attachment; filename=audiofile.mp3
Content-Length:12359460
Content-Range:bytes 0-12359459/12359460
Content-Transfer-Encoding:binary
Content-Type:audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3
Date:Thu, 21 Dec 2017 17:14:57 GMT
Expires:0
Pragma:public
Server:nginx/1.12.2
这是HTML5
<audio controls="" preload="none" src="/content?name=audiofile.mp3"></audio>
我得到的唯一信息是
失败(插件处理负载)
我不知道这意味着什么或做什么。