0

Nodejs と Firefox を使用して Web ページを表示しています。そのページには HTML5 audio 要素があります。私が抱えている問題は、オーディオの長さの計算に関連しています。私のノード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 Webページには次のものがあります。

<audio  id="idaudio"  src="" type="audio/wav" >Your browser does not support the audio element.</audio>

そして、私のWebページからの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