Java 在j2me中播放生成的声音

Java 在j2me中播放生成的声音,java,audio,java-me,playback,mmapi,Java,Audio,Java Me,Playback,Mmapi,我有Android的代码,可以播放自定义声音,工作正常: AudioTrack output = new AudioTrack(AudioManager.STREAM_MUSIC, baudRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, bufferSize, AudioTrack.MODE_STATIC); output.write(myGeneratedWaveform, 0, myGeneratedWav

我有Android的代码,可以播放自定义声音,工作正常:

AudioTrack output = new AudioTrack(AudioManager.STREAM_MUSIC, baudRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, bufferSize, AudioTrack.MODE_STATIC);
output.write(myGeneratedWaveform, 0, myGeneratedWaveform.length); 
output.play();
如何使用j2me实现同样的功能

我正在检查Manager.createPlayer(…)的API,但没有找到示例代码

任何帮助都将不胜感激

编辑:
我有一个带有PCM编码波形的阵列。我想用诺基亚40系列重现这一点。但我的结论是,这种格式没有这样的支持,只有AMR。因此,一个开源库可以从PCM转换为AMR。

请检查场景7:从存储在JAR中的媒体播放

InputStream is = getClass().getResourceAsStream("audio.wav");
Player p = Manager.createPlayer(is, "audio/X-wav");
p.start();

J2ME内置的音乐播放器能够播放任何输入流,而不仅仅是从媒体商店捕获的输入流。我的意思是,您可以创建原始字节数组,它以特定的音频格式表示您的声音数据,然后将其表示为输入流,将其作为预存储的音频文件进行播放

byte[] data; // your audio data, let us say it represents content of a proper wav-file
Player player = Manager.createPlayer(new ByteArrayInputStream(data), "audio/x-wav");
player.start();
就这些。顺便说一下,您可以简单地使用JFugue的旧版本,可以使用上述技巧为J2ME编译该版本。您将获得由音乐字符串生成的midi输出,如“Cmaj G I[Flute]C”--这可能对耳朵训练midlet等很方便。任何有兴趣的人都可以查看