Ste*_*teD 23 android soundpool
我有一个.wav文件,我想在我的游戏中使用,目前我正在加载onCreate()游戏中每个活动的声音.
soundCount = soundpool.load(this,R.raw.count, 1);
Run Code Online (Sandbox Code Playgroud)
活动开始后将播放声音.
soundpool.play(soundCount, 0.9f, 0.9f, 1, -1, 1f);
Run Code Online (Sandbox Code Playgroud)
问题有时我会遇到错误"sample x not ready".是否可以在开始游戏时加载.wav文件并将其保存在内存中并在以后的游戏中使用它?或者是否可以等待1-2秒以使声音加载完成?
Ebo*_*ike 34
你需要通过添加一个监听器来等待它完成SoundPool.setOnLoadCompleteListener.
由于我的项目与Android 1.5兼容,我无法使用setOnLoadCompleteListener,因此我解决了延迟播放声音的问题.我的源代码如下:
playSound_Delayed(soundId, 100);
Run Code Online (Sandbox Code Playgroud)
//(..)
private void playSound_Delayed (final int soundId, final long millisec) {
// TIMER
final Handler mHandler = new Handler();
final Runnable mDelayedTimeTask = new Runnable() {
int counter = 0;
public void run() {
counter++;
if (counter == 1) {
boolean ret = mHandler.postDelayed(this, millisec);
if (ret==false) Log.w("playSound_Delayed", "mHandler.postAtTime FAILED!");
} else {
playSound(soundId);
}
}
};
mDelayedTimeTask.run();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27498 次 |
| 最近记录: |