我正在构建一个在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搏斗!
非常感谢任何输入。
中号
答案 0 :(得分:0)
尝试将MP3上传到您的网络服务器,然后将链接存储到Mysql数据库中的MP3,然后告诉php抓取链接并回显出一个带有链接的html嵌入标记作为src。
答案 1 :(得分:0)
之前我遇到过Firefox的问题,它希望内容长度的HTTP标题几乎包含所有内容。
您可以尝试使用SQL SELECT data, LENGTH(data) FROM ...
找出MP3文件的内容长度,然后使用header("Content-length: $lengthField");
设置HTTP标头