使用Google Chrome浏览器(V72.0.3626.119),我发现<audio>
元素无法按预期工作。
我有一个简单的Node.js服务器:
const http = require('http')
const fs = require('fs')
http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'audio/ogg')
res.end(fs.readFileSync('./test.ogg', {encoding: null}))
}).listen(9000)
我发现,使用Chrome浏览器,如果我导航到localhost:9000
,则音频会自动开始播放。但是寻求完全被打破了。
如果我在Firefox中转到localhost:9000
,则音频将按预期显示/运行。
如果我在野生动物园中去localhost:9000
,音频就会下载(UGH)
如果我在Opera中转到localhost:9000
,则音频的行为与Chrome中的行为相同
我在Node.js服务器上做错什么了吗?
我发现使用以下代码管理从服务器到客户端的流(使用Safari除外)是可行的:https://github.com/daspinola/video-stream-sample/blob/master/server.js
我之前问过一个相关的问题:How to send an audio file to Chrome using a Node.js http server endpoint?
答案 0 :(得分:-1)
我建议使用res.sendFile('./test.ogg')
而不是res.end(fs.readFileSync('./test.ogg'))
。
然后在您的HTML客户端中只需执行<audio src="/" type="audio/ogg"/>