我有一些跨浏览器兼容性的乐趣。我有一个带有几个 servlet 的 Ruby WEBrick 服务器,其中一个用于流媒体(Ogg 和 MP3)。servlet 获取几个查询参数(一个 base64 urlsafe 字符串key
、一个小字符串user
和一个小数字sid
)。当我将 URL 逐字输入 Chrome 时,我得到了 QuickTime 扩展,并且它可以工作。当我将其发布到 FireFox 时,我得到了预期的不受支持的编解码器。当我把它放在 Safari 中时,它可以工作。但是,不会直接访问该 URL。我有一个使用 Javascript Buzz的 jQuery Mobile 应用程序库,并使用这些 servlet 流 URL 作为源。该代码在 Safari 中运行,允许我播放声音。在 FireFox 上,它不会回到 Ogg 上,而是给出不受支持的错误,而在 Chrome 上,它什么也不做。这是为 MP3 提供服务的代码:
res.status = 200
str = File.new("Music/#{req.query['sid']}.mp3", 'r:BINARY:BINARY').read
res.body = str
res['content-type'] = 'audio/mpeg'
谁能告诉我如何通过 Ruby servlet 将音频流传输到所有浏览器?
注意:这不是重复的。我已经彻底了解了很多 SO 答案,但没有一个有效,因为它们是为静态文件设计的,而不是为 servlet 设计的。