0

我的问题很简单:如何使用可搜索的 PHP 输出 mp3?我相信我设置了适当的标头,并且我已经尝试使用 readfile() 和 fopen(),因为我的研究使我相信 readfile() 不支持字节范围而 fopen() 支持。但是,我真的不明白如何使用或设置字节范围,只是我显然需要这样做。我正在通过 jPlayer 播放歌曲,歌曲播放良好,但无法搜索。换句话说,您不能通过单击搜索栏上的不同位置来跳过歌曲。

这是输出 mp3 文件的代码:

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false); // required for certain browsers 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header("Content-Disposition: inline; filename=" . $file . ";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($path));
//readfile("$path");
$music = fopen($path, 'r');
fseek($music, 0);
fpassthru($music);
exit();

如果我需要阅读 Range 标头,我该怎么做?

4

1 回答 1

1

我花了几天时间试图解决同样的问题。我还没有破解它,但我注意到了这一点。

Mp3 不会向前跳过(由于 quicktime 抓取第一个字节然后返回其余字节)soundcloud 流(它们是 mp3)但是让我向前跳过(当通过同一播放器播放时)

我怀疑您可能会在 soundcloud 标头中找到解决方案(因为他们以某种方式破解了它)。

于 2014-10-11T02:34:10.427 回答