作为android studio编程的绝对新手,请尝试编写三个按钮,每个按钮将播放一个音频片段,但不会同时播放所有音频片段。在给定的时间内只能播放一个乐曲。这些按钮可以正常工作并且正在播放,但是问题在于,如果按下所有按钮,它们会同时播放。这是MainActivity的副本:
package com.naomitan.multibuttonaudio;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
MediaPlayer mp1, mp2, mp3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void firstButton(View view) {
mp1 = MediaPlayer.create(this, R.raw.a);
if(mp1.isPlaying() == true){
mp1.pause();
}else{
mp1.start();
mp2.pause();
mp3.pause();
if(mp2.isPlaying() == true){
mp2.pause();
}else{
mp2.start();
mp1.pause();
mp3.pause();
if(mp3.isPlaying() == true){
mp3.pause();
}else{
mp3.start();
mp1.pause();
mp2.pause();
}
}
}
}
public void secondButton(View view) {
mp = MediaPlayer.create(this, R.raw.b);
if(mp.isPlaying() == true){
mp.pause();
}else{
mp.start();
}
}
public void thirdButton(View view) {
mp = MediaPlayer.create(this, R.raw.c);
if(mp.isPlaying() == true){
mp.pause();
}else{
mp.start();
}
}
}
答案 0 :(得分:0)
问题出在您的按钮功能上,您有以下几个错误:
您在第二个和第三个按钮上都使用了 var y = []
for(let i=0;i < word.length;++i){
if(word[i] == "A"|| word[i] == "a"){
y.push(0)
}
else if(word[i] == "B"|| word[i] == "b"){
y.push(1);
}
else if(word[i] == "C"|| word[i] == "c"){
y.push(2);
}
else if(word[i] == "D"|| word[i] == "d"){
y.push(3);
}
and so on..
return(y);
}
,而不是分别使用m
和m2
。
根据情况,您可能会在第一个按钮上启动m3
和m2
要解决此问题,只需对所有按钮进行相同的检查,然后检查每个按钮是否正在播放(如果是,则暂停,否则播放)以及其他两个按钮是否正在播放(如果是,则暂停)。
m3