【问题标题】:Retrieve and play mp3 files from mySQL using Javascript/PHP使用 Javascript/PHP 从 mySQL 检索和播放 mp3 文件
【发布时间】:2011-03-15 00:31:37
【问题描述】:

我正在构建一个在 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 搏斗!

我们将不胜感激。

M

【问题讨论】:

  • 我解决了 Firefox 和 Opera 的问题,目前不太关心 Chrome。但是 - 我想知道如何让 SAfari 承认内容不是流,而是有限数量的数据。我现在提供内容长度标头 - Safari 还需要什么来确认音频文件的长度?谢谢M

标签: mysql audio mp3


【解决方案1】:

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

【讨论】:

  • 希望将数据及其相关信息一起保存在数据库中。这样,我可以将文件的 mime 类型、文件大小、标题和任何其他信息与文件一起保存在其记录中。没有什么不同步的,它允许我的用户将新文件上传到网站,将所有信息(由上传代码收集,标题除外,由用户提供)与文件数据一起保存。
【解决方案2】:

我之前在使用 Firefox 时遇到过问题,它需要一个包含几乎所有内容的内容长度的 HTTP 标头。

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

【讨论】:

  • 谢谢 - 你提出了一个可行的想法 - 没有完全按照你说的那样做 - 确实提供了内容长度标题,但其中的信息与文件一起存储在 mySQL 数据库中,并且一个名为 file_size 的字段。由于数据库内容大小在下一次上传之前不会改变,这是有道理的。这照顾了 FIrefox 和 Opera - Chrome 仍然不知道如何处理音频 - 我可能会忽略这一点 - 除非有人知道如何修复...... M
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多