2010-12-14 15 views
11

私はHTML5オーディオでサウンドエフェクトを実装していますが、しばらくしてからオーディオの再生を停止します。ファイルの種類は正しかったが、その後はあきらめてしまいます。HTML5オーディオはランダムに再生されます

var sound = new Audio(url); 
function play() {   
    sound.play(); 
} 

サウンドを一貫して再生するには、これを行うより良い方法がありますか?

ここに私の実装へのリンクがあります。それは最終的にあきらめるまで(追加音のためのライトを撃つ)、スペースバーをたくさん押すことによって再現しやすい。 http://craftyjs.com/elevatoraction/

これは編集Chromeの最新バージョン(8.0)

で私のために発生しますのGauravが提案してのみ、各サウンドファイルの同じインスタンスを果たしたが、問題の同じ種類が存在しているように私がやった 。それは任意に再生を停止します。

編集2:は、私はちょうど私が音を再生しようとするたびに、networkStateは常にthisによると、それはない完全に読み込まれる意味1であることに気づきました。奇妙に見えるのは、まだ再生されていて、再生中でも、networkStateは常に1です。

+1

に関連していると思います。 –

答えて

6

サウンドを再生するたびに新しいオーディオオブジェクトを作成しないでください。同じリソースを再利用してください。

var sound1 = new Audio(url); 
function playSound1() { 
    sound1.play(); 
} 

私はあなたが問題を上に再現した内容のブラウザのバージョン(複数可)とオペレーティングシステムのバージョン(複数可)を指定する必要があり、これはバグhttp://code.google.com/p/chromium/issues/detail?id=57070

+0

ああ、バグです。私はどのようにして同じ音を同時に演奏するだろうか? – Louis

+0

それでは、複数のオーディオオブジェクトを使用する必要があります。そして、それらを管理して、実際に必要な最小数を作成する必要があります。とにかく、バグが修正されるまで。 – Gaurav

+0

いいですね。それは、各ファイルの約2〜3つのオーディオオブジェクトを作成し、再生しているものを確認する必要があるということですか?私は正直なところ、良い文書を手に入れるのは難しいと思っています。 – Louis

関連する問題