我为我工作的行进乐队托管了一个网站。我有一个功能齐全的成员(member)部分,可以登录。我有一个 .htaccess 文件夹,可以保护我的 mp3 免受热/直接链接。我可以让文件在 Safari、Chrome 和 Firefox 中播放,但不能在我的 iPhone 上播放!
我通过在 php 文件中使用标题来提供内容,该文件又创建一个 html5 音频标签来提供内容。我在 php 中尝试了 readfile() 但没有成功。
下面的 php 文件:(减去安全检查)
$_GET['f'] = "privatefolder/" . $_GET['f'];
$filename = $_GET['f'];
$filesize = @filesize($filename);
$len = strlen( $filename );
$shortlen = $length - 1;
header( 'Content-Range: bytes 0-'.$shortlen.'/'.$len);
header("Last-Modified: ".filemtime($filename));
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg");//mpeg
header("Etag: W5M0MpCehiHzreSzNTczkc9d");
header("Content-Description: {$filename}");
header("Content-length: {$filesize}");
header("Content-Disposition: filename=button.mp3");
header("X-Pad: avoid browser bug");
header("Cache-Control: no-cache");
header("Connection: close");
echo "<audio controls='controls'><source src='".file_get_contents($_GET['f'])."' type='audio/mp3' /></audio>";
exit;
此代码在所有主要浏览器中都运行良好,但在我的 iPhone 上,Mobile Safari 在尝试打开页面时锁定并崩溃!
我错过了什么?我假设这是一个 header 问题以及 quicktime“下载/流”的方式。我已经为此奋斗了 2 周,尝试了我能找到的所有解决方案!请帮忙!!!
* 附注:我在 Opera Mini 浏览器中打开了该页面,它将链接发送到 safari 并在 quicktime 中正常播放,没有任何问题?!?!?所以我知道这是可能的!
最佳答案
它在 iOS4 上有效,在 iOS5 上失败。 我认为扩展名必须是“mp3”才能用作 mp3...
关于php - iOS5 Mobile Safari 使用 php 提供 mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920911/