与HTML5 <audio>元素</audio>相关的Nodejs + Firefox行为

时间:2013-11-13 08:52:38

标签: html5 node.js firefox audio

我正在使用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获得音频的持续时间。有什么想法吗?

0 个答案:

没有答案