【发布时间】:2013-11-21 23:29:23
【问题描述】:
我正在使用 jQuery 的 ajax 方法在服务器上调用 PHP 脚本,该脚本将返回一个 mp3 文件给我,因此我将数据保存在成功函数的变量中。现在我想为这个人播放那个音频。我正在使用 HTML5,但我看到的每个示例都希望您指向一个包含音频的文件。我没有它作为文件,我有它在内存中。
【问题讨论】:
-
为什么要通过AJAX返回MP3数据?为什么不让浏览器为您处理它,为该媒体指定 PHP 脚本的 URL?这样会更有效率和兼容性。其他方法包括将其放入 Blob,或使用带有脚本节点的 Web Audio API。
-
因为被调用的 PHP 脚本需要一个带有多个参数的 POST。
-
我会单独执行您的
POST(假设您实际上正在更改数据)并返回一个令牌,然后您可以使用普通的GET调用您的视频脚本。这是一个更好的解决方案。 -
mp3文件是根据发送给php脚本的内容动态创建并返回给浏览器的。我不确定您所说的实际效果如何。
-
将临时文件写入磁盘并返回引用该文件的 ID 作为对 AJAX POST 的响应。您可以使用足够长的 ID 以便此文件可以存在于文档根目录中,或者执行类似
getMp3File.php?id=0123456789abcdef的操作。这不仅会大大增加对浏览器的支持并大大提高性能,而且您会自动添加对在文件中查找范围请求的支持。
标签: javascript php jquery html audio