iOS5 Mobile Safari使用php提供mp3

时间:2011-10-27 18:58:38

标签: php iphone ios mp3 mobile-safari

我为我工作的乐队主持了一个网站。我有一个功能齐全的会员部分登录。我有一个.htaccess文件夹,可以保护我的mp3免受热/直接链接。我可以在Safari,Chrome和Firefox中播放这些文件,但不能在我的iPhone上播放!

我通过在php文件中使用标题来提供内容,而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会在尝试打开页面时锁定并崩溃!

我错过了什么?我认为这是一个标题问题以及quicktime“下载/流式传输”的方式。我一直在与这场斗争2周,尝试了我能找到的每一个解决方案!请帮助!!!

*只是旁注:我已经在Opera Mini浏览器中打开了页面,它将链接发送到safari并快速播放,没有任何问题?!?!?所以我知道这是可能的!

2 个答案:

答案 0 :(得分:1)

它适用于iOS4,在iOS5上失败。 我认为扩展必须是“mp3”才能用作mp3 ...

答案 1 :(得分:0)

您无法发送标题,使其看起来像mp3文件并同时包含HTML。我很震惊它可以在任何浏览器中使用。

您的HTML应该是<audio><source src="/path/to/mp3.php"></audio>,其中mp3.php包含标题并输出mp3文件的内容。