Nodejs+;与HTML5相关的Firefox行为<;音频>;要素
我使用Nodejs和Firefox来显示网页。该页面具有HTML5音频元素。我遇到的问题与音频持续时间的计算有关。 在我的node js脚本中,我有:Nodejs+;与HTML5相关的Firefox行为<;音频>;要素,html,node.js,firefox,audio,Html,Node.js,Firefox,Audio,我使用Nodejs和Firefox来显示网页。该页面具有HTML5音频元素。我遇到的问题与音频持续时间的计算有关。 在我的node js脚本中,我有: var app = require('http').createServer(handler) , path = require("path") , io = require('socket.io').listen(app) , fs = require('fs') , exec = require('child_process'
var app = require('http').createServer(handler)
, path = require("path")
, io = require('socket.io').listen(app)
, fs = require('fs')
, exec = require('child_process').exec
, spawn = require ('child_process').spawn
, util = require('util')
, extensions = {
".html": "text/html",
".css": "text/css",
".js": "application/javascript",
".png": "image/png",
".gif": "image/gif",
".ttf": "application/x-font-ttf",
".jpg": "image/jpeg",
".mp3": "audio/mp3",
".wav": "audio/wav",
".ogg": "audio/ogg"
}
, Files = {};
在我的html网页中,我有:
<audio id="idaudio" src="" type="audio/wav" >Your browser does not support the audio element.</audio>
当我检查durationaudio时,我得到了正确的数字,然后我可以使用thissound.play()
;播放歌曲;这段代码在Firefox和Chromium中运行
如果我改变
thissound.src="http://localhost/Audio/Song.wav" -> thissound.src="/Audio/Song.wav"
在节点脚本中添加“.wav”:“audio/wav”扩展,我可以使用Firefox和Chromium播放歌曲;在Chromium中,我还得到了正确的
durationaudio
数,但使用Firefox,我得到了durationaudio=Infinity
。这就是问题所在。我不知道为什么Firefox不能获得正确的持续时间。也许我得加一些扩展。。。在节点脚本中,以允许Firefox获取音频的持续时间。有什么想法吗?如果它请求相同的音频资源,那么无论是通过绝对URL还是相对URL请求,都应该无关紧要。您是否比较了两个请求/响应的标题,是否有任何差异?你能发布一个在线示例的链接吗?嗨,我该如何比较标题?我不能发布链接…Firebug,net panel…但是如果没有一个实例,从现在开始你就只能靠自己了。我使用并比较了标题,我发现缺少内容范围。。。。我在我的节点脚本中添加了:“Content-Range”:“bytes”+contents.length+'-'+1+'/'+contents.length,“Accept-Ranges”:“bytes”,现在它似乎可以工作了。你是对的,如果这是个标题问题。。。谢谢
thissound.src="http://localhost/Audio/Song.wav" -> thissound.src="/Audio/Song.wav"