Android Java - 由于某种原因SoundPool声音停止播放

时间:2013-12-01 14:07:57

标签: java android audio soundpool

好吧,我使用SoundPool onClick on ImageView声音,其中一些启动另一个Activity。像这样:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()){
    case R.id.main_menue_status:{
button_click.play(button_clickID, 1,1, 0, 0, 1); //this is SoundPoool's play
    Intent intent=new Intent(context,MainMenueActivity.class);
        startActivity(intent);
        finish();
    }

其他活动有相同的ImageViews(实际上是按钮)来浏览应用程序。 并且我一直使用finish();防止创建数百万个活动副本。 因此,在大约30个SoundPool播放之后,声音停止播放。

我的猜测是因为我在声音完成之前完成了()活动,所以不知何故系统停止播放任何SoundPool。

有什么建议吗?

UPD:记录:

12-01 19:04:49.797: E/AudioTrack(19981): AudioFlinger could not create track, status: -12
12-01 19:04:49.797: E/SoundPool(19981): Error creating AudioTrack

1 个答案:

答案 0 :(得分:2)

我认为“状态:-12”是内存不足错误。此外,在活动中调用finish()并不能保证活动将立即完成并释放资源。

由于您有多个活动和几个SoundPools,我建议创建SoundPool并在Activity的onResume()方法中加载声音资源,然后卸载资源并在onPause()方法中释放SoundPool。 / p>