java - 按下另一个按钮时无法停止 MediaPlayer
问题描述
我不知道我尝试了多少小时,但我不可能使用 android studio 修复它。
当我播放一个按钮时,我尝试按下另一个,两个重叠,真的很烦人,我需要在按下两个按钮中的一个时,再现一个的音频而另一个的音频被取消,我不需要重叠,我无法修复它。
PS 音频超过 1 分钟,所以 SoundPool 对我不起作用。
public void SOUND(View view)
{
AZASOUND = MediaPlayer.create(this, R.raw.azaharasound);
AZASOUND.start();
if(AZASOUND.isPlaying())
{
//AZASOUNDUK.stop();
//AZASOUNDUK.release();
//AZASOUNDUK = null;
}
super.onPause();
}
public void SOUNDUK(View view) {
AZASOUNDUK = MediaPlayer.create(this, R.raw.azaharausa);
AZASOUNDUK.start();
if(AZASOUNDUK.isPlaying())
{
AZASOUND.stop();
}
else if(AZASOUND.isPlaying()){
AZASOUNDUK.stop();
}
super.onPause();
}
解决方案
声音重叠是因为您在和方法中创建了单独的MediaPlayer实例。为了避免这种情况,请在类范围内创建一个MediaPlayer的全局实例,并在每个方法中使用这个实例 - 检查 mediaPlayer 是否正在播放 - 并根据这个布尔值停止已经播放的声音并播放另一个。SOUND()
SOUNDUK
推荐阅读
- react-native - 大家好,我不断收到错误错误:未设置 JAVA_HOME 并且在您的 PATH 中找不到“java”命令
- python - 具有可选打印输出的 Python 函数
- c# - DocuSign 使用 .Net Core 3 连接 Webhook
- python - 如何使用二维矩阵执行回归以预测单个常数值?
- python-3.x - 使用变换矩阵旋转二维灰度图像
- react-native - React Native Android - 构建成功 - 但不打开
- python - 将 Dataloader 字典转换为 Pytorch 张量
- python - Python MultiProcessing:根据父进程中的事件杀死子进程
- twitter-bootstrap-3 - 媒体查询中的最大高度 Bootstrap 4
- python - 如何使此功能更有效?(板球统计)