java – 可以在oncreate()中播放soundPool吗?
作者:互联网
我正在开发一个应用程序,其中当一个新活动开始时,它应该开始播放声音.
所以我用mediaplayer在oncreate中播放声音并且工作正常.但是,当我尝试使用soundpool时,通过在活动的oncreate中加载和播放它.
它不玩.
我选择soundpool,因为它比mediaplayer更好.
可能是什么问题?是不是在oncreate中使用soundpool工作?
解决方法:
你可以在任何地方玩,
我用一个简单的例子来证明
创建一个方法initializeSoundPool
private void initializeSoundPool(){
mSoundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
mSoundPool.setOnLoadCompleteListener(new onl oadCompleteListener() {
public void onl oadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundID = mSoundPool.load(this, R.raw.glassbreak, 1);
}
然后创建一个方法playFile
private void playFile(){
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
if (loaded) {
mSoundPool.play(soundID, volume, volume, 1, 0, 1f);
Log.e("Test", "Played sound");
}
}
然后在onCreate中调用它们就像这样
private SoundPool mSoundPool;
private int soundID;
boolean loaded = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spxml);
initializeSoundPool();
playFile();
}
或者甚至更好地调用onCreate中的initializeSoundPool,然后在onResume中调用playFile.
标签:soundpool,android,java,android-activity 来源: https://codeday.me/bug/20190902/1787730.html