4

インターウェブ上で完全に JavaScript で記述された Nintendo エミュレーターを見つけましたが、サウンドがありません。JavaScript を使用してブラウザーでサウンドを合成し、それを再生する方法はありますか? 一般的に不可能な場合は、Safari/Opera/FireFox/IE/などがありますか? それを可能にする拡張機能は?

サウンドを合成するテクニックについて質問しているわけではなく、ブラウザで実行されているコードによって合成されたサウンドを再生するテクニックについて質問しているだけです。

4

4 に答える 4

3

あなたの最善の策は、ExternalInterface ( http://www.adobe.com/devnet/flash/articles/external_interface.html ) を使用して Javascript を Flash と通信させることだと思います。Flash には、サウンド バッファと汎用の ByteArray クラスとの間でデータを転送する方法が用意されています。

http://www.adobe.com/devnet/flash/articles/dynamic_sound_generation/

Flex SDK http://www.adobe.com/products/flex/を使用して無料で Flash を開発できます。

于 2009-10-30T05:09:14.373 に答える
2

NES エミュレーターの作成者がダイナミック オーディオ ライブラリを発見したことが判明しました。

https://github.com/bfirsh/dynamicaudio.js

私はそれを試していませんが、ドキュメントは有望に見えます:

var dynamicaudio = new DynamicAudio({'swf': '/static/dynamicaudio.swf'})

書き込み (サンプル); // -1.0 から 1.0 の範囲の浮動小数点オーディオ サンプルの配列を再生します。

于 2011-07-19T14:58:36.870 に答える
2

ほとんどの開発者は、JavaScript を使用してアプリケーションにサウンドを追加する場合に、SoundManager 2を使用します。JavaScript が Flash 8 および 9 の機能と対話できるようにフックがあります。あなたが求めているバイトデータを操作する機能が公開されているかどうかはわかりませんが、私はそれに対処する必要はありませんでした。

于 2009-10-30T05:33:11.267 に答える
1

理論的には、サウンドを合成し、データ URL を使用してブラウザに再生させることができるはずです。

実際には、Steven Wittens がこの手法のデモを作成しました。encodeAudio8bitand関数はencodeAudio16bit、魔法が起こる場所です。

于 2012-11-16T23:24:57.930 に答える