2012-01-28 12 views
1

私たちはHTML5/JavaScriptでリアルタイムの戦略(RTS)ゲームをデモンストレーションしています。しかし、Chrome(非常に最新バージョン)では、音がぼやけてしまい、やがて諦めます。このコードは、最新のFirefox、IE9、Safariで正常に動作します(ただし、iOS4 iPhone/iPadでは全く音は出ませんが、明らかにAppleの商業的決定です)。下のリンクにあなた自身が見ることができますが、すぐに問題を引き起こすためにいくつかの音以上を取得してください。RTSゲームHTML5のオーディオ、ChromeのMP3とOGGのスターターとストップ

http://www.enterprisewarfare.com/Play.aspx

簡略音再生コードは、以下で、それぞれの音を注意して複数のチャネルをシミュレートするために、4回(AUDIO_CHANELS_PER_FILE)が存在します。この数値を調整しても、サウンドの損失が早くも遅くも発生することはありません。そのため、アレイの最後に到達したり、同じオーディオオブジェクトを再び再生することはできません。私たちはOGGとMP3の両方のファイル形式を試しましたが、IE9(MP3)とFirefox(OGG)では問題なく動作します。私たちはまた、ファイルを最初から無駄に探してみました。

this.PlaySound = function(sId) 
    { 

     var iSoundMapIndex; 
     var asoundChannels; 

     if(sId == null || sId.length == 0) return; 

     // Grab sound channels array 
     iSoundMapIndex = this.SoundMap[sId]; 
     asoundChannels = this.Sounds[iSoundMapIndex]; 
     if(asoundChannels == null) 
     { 
      this.World.AddMessage("Unable to find sound \"" + sId + "\"."); 
      return; 
     } 

     // play the next in sequence 
     asoundChannels[this.SoundChannel[iSoundMapIndex]].volume = 1; 
     asoundChannels[this.SoundChannel[iSoundMapIndex]].play(); 
     this.SoundChannel[iSoundMapIndex]++; 
     if(this.SoundChannel[iSoundMapIndex] == this.AUDIO_CHANNELS_PER_FILE) this.SoundChannel[iSoundMapIndex] = 0; 

    } 

答えて

-1

これはChromeのバグであり、これが修正されているようです。まだサウンドロードと複数のチャンネルが、サウンドの完全な内訳がある問題は解決されているようです。

+0

バグが修正された方法*に*気をつけなかったので、投票が遅れました。 – John

0

これはクロムとクロムの問題のようです。私は、バグレポートと開発者の回答を見てみることをお勧めします。あるいは、解決するまで待ってから問題を無視してください。

私はjavascriptで私より多くの経験を持つ誰も回避策に関する提案をしてくれたことは残念です。私はいくつかの助けを見つけることを望んで質問をupvotedしました。

関連する問題