その場でオーディオを生成する必要があります (wav または mp3 ファイルからの生成はオプションではありません)。幸いなことに、新しい WebAudio API (FF4 および Chrome 13) はこの機能を提供します。
次のようなJavascriptに移植しているJavaコードがいくつかあります。
byte[] buffer = new byte[]{ 56, -27, 88, -29, 88, -29, 88, -29 ............ };
AudioFormat af = new AudioFormat(44100, 16, 1, true, false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af, 1470 * 4); //create 4 frame audio buffer
sdl.start();
sdl.write(buffer, 0, buffer.length);
これを Web Audio API で動作させようとしていますが、非常に歪んでいます。JSで使用しているコードは次のとおりです。
var buffer = [ 56, -27, 88, -29, 88, -29, 88, -29 ............ ];
var ctx = new webkitAudioContext();
var src = ctx.createBufferSource();
src.buffer = ctx.createBuffer(1, buffer.length, 44100);
src.buffer.getChannelData(0).set(buffer);
src.connect(ctx.destination);
src.looping = false;
src.noteOn(0);
ここに私がテストしている .java ファイルがあります: http://gwt-nes-port.googlecode.com/svn/wiki/webAudioTests/Main.java
そして、これが私がテストしている.jsファイルです: http://gwt-nes-port.googlecode.com/svn/wiki/webAudioTests/Main.js
javax.sound と Web Audio の動作の違いと、JS コードの歪みの原因に関するヒントはありますか?