是的,Android的SoundPool類可以預加載音頻資源。通過使用SoundPool.load()
方法,您可以將音頻資源加載到內存中,以便在需要時快速播放。以下是一個簡單的示例:
import android.media.SoundPool;
import android.content.Context;
public class MainActivity extends AppCompatActivity {
private SoundPool soundPool;
private int soundId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化SoundPool
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
soundPool = new SoundPool.Builder().setMaxStreams(1).build();
} else {
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
}
// 加載音頻資源
soundId = soundPool.load(this, R.raw.your_audio_file, 1);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 釋放SoundPool資源
if (soundPool != null) {
soundPool.release();
soundPool = null;
}
}
}
在這個示例中,我們首先檢查設備的API級別,然后根據不同的API級別創建一個SoundPool實例。接下來,我們使用soundPool.load()
方法加載音頻資源,并將其存儲在soundId
變量中。這樣,在需要播放音頻時,我們可以使用soundPool.play()
方法快速播放音頻。