gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:28:16 24 4
gpt4 key购买 nike

嗯,我使用 SoundPool 来处理 ImageView 上的 onClick 声音,其中一些会启动另一个 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();
}

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

我的猜测是,这是因为我在声音完成播放之前完成了 Activity(),因此系统以某种方式完全停止播放任何 SoundPool。

有什么建议吗?

更新:日志:

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

最佳答案

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

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

关于java - Android Java - SoundPool 声音由于某种原因停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20312988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com