Во-первых, просто хочу, чтобы вы знали, что я давно слежу за этим сайтом, и мне всегда нравится читать здесь и видеть здесь блестящих умных людей :).
У меня возникла проблема с моим новым проектом приложения (создайте его для моих детей), и я надеюсь, что кто-то поможет мне с этим.
в моем приложении было девять различных кнопок. для любой кнопки у меня был разный звук.
если вы нажмете "птичью кнопку", то вы услышите щебетание птичьего голоса, если вы нажмете "собачью кнопку", вы услышите собачий голос ... Я установил звук для всех девяти кнопок, и когда я нажимаю одну из них, я могу слышать звук так, как я хочу.
но (!), если я нажимаю одну из кнопок и сразу после этого нажимаю на другую кнопку, я слышу голос вместе (например, если я нажимаю кнопку собаки и через одну секунду после того, как я нажимаю кнопку кошки, я слышу собаку и кот вместе голосят ..)
jost wondring, если вы можете мне помочь, установите его ... если я нажму одну кнопку, я услышу голос кнопки. но если я нажму другую кнопку, предыдущий звук прекратится (не пауза-стоп), и я услышу только последнюю нажатую кнопку голоса. public class animals расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_animals );
final MediaPlayer birdMP = MediaPlayer.create(this,R.raw.bird);
final MediaPlayer catMP = MediaPlayer.create(this,R.raw.cat);
final MediaPlayer chickenMP = MediaPlayer.create(this,R.raw.chicken);
final MediaPlayer cowMP = MediaPlayer.create(this,R.raw.cow);
final MediaPlayer dogMP = MediaPlayer.create(this,R.raw.dog);
final MediaPlayer elephentMP = MediaPlayer.create(this,R.raw.elephent);
final MediaPlayer horseMP = MediaPlayer.create(this,R.raw.horse);
final MediaPlayer sheepMP = MediaPlayer.create(this,R.raw.sheep);
final MediaPlayer wolfMP = MediaPlayer.create(this,R.raw.wolf);
final Button Btnbird = (Button)this.findViewById( R.id.Btnbird );
final Button Btncat = (Button)this.findViewById( R.id.Btncat );
final Button Btnchicken = (Button)this.findViewById( R.id.Btnchicken );
final Button Btncow = (Button)this.findViewById( R.id.Btncow );
final Button Btndog = (Button)this.findViewById( R.id.Btndog );
final Button Btnhelf = (Button)this.findViewById( R.id.Btnhelf );
final Button Btnhurse = (Button)this.findViewById( R.id.Btnhurse );
final Button Btnsheep = (Button)this.findViewById( R.id.Btnsheep );
final Button Btnwolf = (Button)this.findViewById( R.id.Btnwolf );
Btnbird.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
cowMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
birdMP.start();
}
} );
Btncat.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
birdMP.stop();
chickenMP.stop();
cowMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
catMP.start();
}
} );
Btnchicken.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
birdMP.stop();
cowMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
chickenMP.start();
}
} );
Btncow.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
cowMP.start();
}
} );
Btndog.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
cowMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
dogMP.start();
}
} );
Btnhelf.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
dogMP.stop();
cowMP.stop();
horseMP.stop();
sheepMP.stop();
wolfMP.stop();
elephentMP.start();
}
} );
Btnhurse.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
dogMP.stop();
elephentMP.stop();
cowMP.stop();
sheepMP.stop();
wolfMP.stop();
horseMP.start();
}
} );
Btnsheep.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
cowMP.stop();
wolfMP.stop();
sheepMP.start();
}
} );
Btnwolf.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
catMP.stop();
chickenMP.stop();
birdMP.stop();
dogMP.stop();
elephentMP.stop();
horseMP.stop();
sheepMP.stop();
cowMP.stop();
wolfMP.start();
}
} );
findViewById( R.id.back ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(animals.this,MainActivity.class );
startActivity( intent );
}
} );
}
}




Вы можете сделать такую функцию, как stopSound(), которая останавливает весь звук, вызывая stop().
Пример: wolfMP.stop()
Позвоните в stopSound(), прежде чем захотите включить следующий звук.
К сожалению, безуспешно.
Я думаю, вы могли бы попробовать сделать массив из ваших кнопок. Таким образом, вы можете перебрать все кнопки, чтобы остановить их. Я не уверен, может ли это сработать ... в любом случае, меня интересует решение такой проблемы!