php - iOS5 Mobile Safari 使用 php 提供 mp3

标签 php iphone ios mp3 mobile-safari

我为我工作的行进乐队托管了一个网站。我有一个功能齐全的成员(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/

相关文章:

javascript - 简单的 javascript 调用失败

php - 无法在 PHP Excel 中创建多个工作表

php - 使用 PHP 和 Javascript 记录用户操作

php - 我应该用什么来保存数据库中的图像

ios - StartUpdateLocations在后台运行,didUpdatingToLocation仅调用10-20次

iphone - 类似于 iPhone 版 Twitter 的导航风格

iphone - Coreplot iphone设置正确的轴和交叉点

iphone - 如何跟踪IOS5中的崩溃?

android - 在 flutter 中改变库比蒂诺滚动条的颜色

ios - 确定用户在 iOS 10 上的 "Temperature Unit"设置(摄氏度/华氏度)