2013-09-06 12 views
6

)私はウェブ・オーディオ・エディタのようなものを書いています。私は基本を終わらせることに近いと思います。オーディオファイルを再生して停止することはできますが、再生メソッドを再度呼び出そうとすると、パラメータが変更されていなくても機能しません。WebAudioは停止後に再生しません(

他のプロジェクトの同様のコードがなぜ機能しないのかわからないので、誰かが私の問題を調べてくれることを嬉しく思います。残念ながら、私は外部mp3ファイルをロードする必要があるためjsfiddleを作成することはできません。そうすることはできません。しかし、私は、javascript hereと対応するhtmlファイルhereを貼り付けました。

あなたが必要とするのは、ファイルをアップロードできるサーバーとその上のmp3だけです。代わりにthis linkを使用することもできますが、最終的にファイルを削除します。

答えて

8

AudioBufferSourceNodeにはstart()を複数回呼び出すことはできません。彼らは一度だけ使用しています。

再生を開始するたびに、AudioBufferの新しいAudioBufferSourceNodeを作成することが、実際には唯一の方法です。

+0

ありがとう、私はそれを試みます。すべてのプロパティを新しいAudioBufferSourceNodeに「コピー」する最も速い方法は何でしょうか?そのようにしなければならない理由はありますか? woulが本当の意味合いを持つとは思えません。 –

+1

あなたが本当に必要とするのは、 'var newSource = context.createBufferSource(); newSource.buffer = oldAudioBuffer; '。それがなぜこのように動作するのかについては、わからない。私はそれがメモリ/パフォーマンスと関係があると思う。 –

0

これを実行したままにして、単にゲインノードから切り離すこともできます。オシレータはおそらく波形を空に/サイレントにするだけです。

関連する問題