0

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

4

0 回答 0