使用 PHP 流式传输/缓冲大型音频文件

stream / buffer large audiofiles with PHP


我正在尝试流式传输音乐以便稍后播放。
这不是下载,而是从源文件到另一个页面上的 <audio> 标签的 mp3 文件直接流。

    到目前为止我尝试过的方法:
  1. 使用网络音频 API 直接从 URL 流式传输(audio.src=url-> audio.load())
    -->"text/html is not supported".
    -->将 MP3 类型添加到 .htaccess 文件没有帮助(是的,我已经尝试移动它到我的 MP3 所在的目录。)
    -->我必须用 PHP 手动完成它,所以我可以使用内容类型 header.
  2. 使用 JQuery、AJAX 和 PHP-file 从 MySQL 数据库上的 blob 流式传输数据。
    -->它不缓冲文件,但完全加载它需要最少的时间。 30 秒。
    --> 对于安全性不那么重要的简单音频流来说太慢而且可能有点太复杂
  3. 使用JQuery,AJAX 和一个 PHP-file 从我的服务器上的目录流式传输数据
    --> 与 2 相同。(此外,它不再那么安全)

我在 .htaccess 文件中使用的代码是

AddType audio/mpeg3 .mp3
AddType audio/mp3 .mp3
AddType audio/x-mpeg3 .mp3

我有 2 种方法可以解决我的问题,所以我有 2 个问题
1. 我如何告诉我的服务器将 MP3 文件流式传输为 audio/mpeg3 而不是 text/html(情况 1)?
2. 我如何缓冲音频流(情况 2 或 3),以便访问者不必等待 30 秒以上?


欢迎指正。

好的,对不起。方式 1 做工作。至少如果你不使用 .htaccess 文件中的 FileMatch 规则来锁定除图像或页面之外的每个文件或目录,而忘记将音频文件包含到允许规则中。

一掌不够