SoundPool在Android 1.6上正常工作,但是当我在仿真器上运行2.1时,每次尝试播放声音时都会收到“示例2未准备好”错误消息。WARN/SoundPool示例2未准备好
我该如何解决这个问题?
SoundPool在Android 1.6上正常工作,但是当我在仿真器上运行2.1时,每次尝试播放声音时都会收到“示例2未准备好”错误消息。WARN/SoundPool示例2未准备好
我该如何解决这个问题?
Android 2.0及更高版本上的SoundPool仅适用于OGG Vorbis文件。如果你使用MP3或类似的东西,他们不会解码。
在我的设备上,只需等待几秒钟,即可准备好音频流。
或者使用,OnLoadCompleteListener
: http://developer.android.com/reference/android/media/SoundPool.OnLoadCompleteListener.html
我可以播放OGG/WAV/MP3 ...
SoundPool
可以为每个媒体类型不同解码器/播放器。
下面是代码
public void loadSound (String strSound, int stream) {
boolean loaded = false;
mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
mSoundPool.play(stream, streamVolume, streamVolume, 1, LOOP_1_TIME, 1f);
}
});
try {
stream= mSoundPool.load(aMan.openFd(strSound), 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
WOW - 感谢您的信息。 – jax 2010-03-17 09:49:39
希望适合你。花了我一段时间才弄清楚。 – Brian 2010-03-19 06:44:09
Android 2.0及更高版本上的SoundPool可与其他编码一起使用,具体取决于MediaPlayer的解码能力。 – Flynn81 2010-12-23 18:22:22