使用Javascript / PHP从mySQL中检索并播放mp3文件

时间:2010-07-12 21:09:09

标签: mysql audio mp3

我正在构建一个在mySQL中存储一些mp3音频文件的站点。目前只有5个,所以效率根本不是问题。

原则上,我仍在努力制作一个不需要其他文件格式的跨浏览器/平台解决方案。

我有一个PHP脚本,用于检索mp3二进制数据并将适当的标头发送到浏览器。然后可以通过指定音频元素的src(无论是音频还是嵌入或其他)来检索文件,如下所示:src =“retrieve_audio.php?uniqueAudioID = [PHP变量标识文件]”。 retrieve_audio php文件获取URL中提供的数据库ID并检索数据,并将其与标头一起发送到请求页面...

这适用于Safari中的音频和嵌入标签。适用于IE 6,7和8中的嵌入。

出于某种原因,Safari将其称为流 - 可能是因为未提供文件的大小 - 并且无论使用哪个标记(音频或嵌入),控件都不允许擦除文件。 IE似乎理解了检索文件的长度,尽管没有明确给出。

但真正的问题是Firefox,Opera和Chrome。这些似乎根本不理解这一点。 FIrefox显示一个控件几秒钟,然后显示一个X - 我无法播放...我知道Firefox中的标签问题。它与嵌入一样。 Opera和Chrome只显示空白或空白方块。

有什么建议吗?

我从没想过我必须在IE上运行的东西上与Firefox搏斗!

非常感谢任何输入。

中号

2 个答案:

答案 0 :(得分:0)

尝试将MP3上传到您的网络服务器,然后将链接存储到Mysql数据库中的MP3,然后告诉php抓取链接并回显出一个带有链接的html嵌入标记作为src。

答案 1 :(得分:0)

之前我遇到过Firefox的问题,它希望内容长度的HTTP标题几乎包含所有内容。

您可以尝试使用SQL SELECT data, LENGTH(data) FROM ...找出MP3文件的内容长度,然后使用header("Content-length: $lengthField");设置HTTP标头