gpt4 book ai didi

java - Android Studio Soundboard 按钮在切换 Activity 后不会播放声音我只能按 7 次才停止

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:16 25 4
gpt4 key购买 nike

在 Android 工作室中,我制作了 Soundboard,其中有 4 个 Activity ,当我进行第一个 Activity 时,我可以整天按下声音并且它们会播放,但是在我单击下一步进行第二个 Activity 后,当我尝试播放它们时,它们不会播放声音。我可以点击大约 7 次,然后它们就会停止。

我到处找,但没有任何作用,我什至再次更改了整个代码,仍然发生同样的事情。

按钮按钮1;按下宇宙所需的按钮,使用石头,等等更多声音......

    iaminevitable = (Button) findViewById(R.id.iaminevitable);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.iaminevitable);
iaminevitable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp.start();
}
});
iusedthestones = (Button) findViewById(R.id.iusedthestones);
final MediaPlayer mp2 = MediaPlayer.create(this,
R.raw.iusedthestones);
iusedthestones.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp2.start();
}
}); etc....


button1 = findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent int1 = new Intent(MainActivity.this, Activity2.class);
startActivity(int1);
}
});

错误消息中没有说明为什么会发生这种情况

最佳答案

首先:在 onCreate 之外声明 MP,以防止 Activity 暂停时被垃圾收集

private MediaPlayer mp,mp2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mp = new MediaPlayer.create(...
mp2 = new MediaPlayer.create(...

更多信息:当 Activity 停止时,丢弃 MP 使用的资源,以避免内存泄漏,这可能会迫使您的应用在连续使用时崩溃。

@Override
protected void onStop() {
super.onStop();
if (mp != null) {
mp.reset();
mp.release();
mp = null;
}
if (mp2 != null) {
mp2.reset();
mp2.release();
mp2 = null;
}
}

关于java - Android Studio Soundboard 按钮在切换 Activity 后不会播放声音我只能按 7 次才停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676320/

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