gpt4 book ai didi

java - Mediaplayer 停止播放我的声音 - Android studio

转载 作者:搜寻专家 更新时间:2023-11-01 08:37:50 27 4
gpt4 key购买 nike

所以我试图为所有按钮执行 Onclick ...每当用户单击某些按钮时它会转到 OnClickButton ,然后播放一些声音..对于按钮 1 它将播放 mp1 按钮 2 播放 sound2 ....所以一切正常但是当我在一段时间后点击很多按钮时声音刚刚停止播放..这是代码:

public void OnClick(View v) {


final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.sound1);
final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.sound2);
final MediaPlayer mp3 = MediaPlayer.create(this, R.raw.sound3);
final MediaPlayer mp4 = MediaPlayer.create(this, R.raw.sound4);

TextView mytv = (TextView) findViewById(R.id.tvMytimer);
int id = v.getId();
if (id == R.id.btComp1 || id==R.id.btUser1)
{
mytv.setText("Button 1");
mp1.start();

}
if (id == R.id.btComp2 || id==R.id.btUser2)
{
mytv.setText("Button 2");
mp2.start();

}
if (id == R.id.btComp3 || id==R.id.btUser3)
{
mytv.setText("Button 3");

mp3.start();

}
if (id == R.id.btComp4 || id==R.id.btUser4)
{
mytv.setText("Button 4");

mp4.start();

}


}

我还禁用了所有随意的按钮声音,因为我想要的只是我的声音..

(disable with setSoundEffectsEnabled(false) 

最佳答案

首先,不要在每次 onClick 时都创建一个新的 MediaPlayer。那是完全没有必要的。只需在 Activity 开始时创建一次。

其次,除了调用 MediaPlayer 的启动方法外,您似乎没有对 MediaPlayer 执行任何操作。 MediaPlayer 有一个相当复杂的生命周期,您需要观察。查看javadoc了解您必须了解的内容才能使其正常工作。

如果您想做的只是快速触发一些声音以响应按钮播放,您应该改为使用 SoundPool管理和播放所有声音。对于您要尝试做的事情,我肯定更喜欢它而不是 MediaPlayer。使用起来更容易。

关于java - Mediaplayer 停止播放我的声音 - Android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35261138/

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