我正在使用Nodejs和Firefox来显示网页。该页面有一个HTML5音频元素。我遇到的问题与音频持续时间的计算有关。 在我的节点js脚本中,我有:
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>
我的网页上有一些javascript代码:
var thissound=document.getElementById("idaudio");
thissound.src="http://localhost/Audio/Song.wav";
//thissound.src="/Audio/Song.wav";
thissound.addEventListener('loadeddata', function() {
var durationaudio = (thissound.duration)*1000;
});
当我检查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获得音频的持续时间。有什么想法吗?