[英]stop playing sound when another sound is playing in android studio
[英]stop playing audio when another one starts playing android studio Java
我是編程和 android 工作室的新手,這是我的第一個應用程序。 我在我的代碼中使用了MediaPlayer
。 而且我無法做到,當我點擊一個聲音時,另一個聲音停止並且播放圖像發生變化。 我想做的是,當我點擊播放按鈕時,其他音頻停止播放,播放 2 的圖片發生變化,等等。
package com.eclipse.diplomproject;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class Case1 extends AppCompatActivity {
ImageView play, play2, play3, play4, play5;
MediaPlayer mediaPlayer, mediaPlayer2 ,mediaPlayer3 ,mediaPlayer4 ,mediaPlayer5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_case1);
mediaPlayer = MediaPlayer.create(Case1.this, R.raw.case1_1);
play= (ImageView) findViewById(R.id.play1);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
play.setImageResource(R.drawable.play_btn);
}
else{
mediaPlayer.start();
play.setImageResource(R.drawable.pause_btn);
}
}
});
mediaPlayer2 = MediaPlayer.create(Case1.this, R.raw.case1_2);
play2 = (ImageView) findViewById(R.id.play2);
play2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer2.isPlaying()){
mediaPlayer2.pause();
play2.setImageResource(R.drawable.play_btn);
}
else{
mediaPlayer2.start();
play2.setImageResource(R.drawable.pause_btn);
}
}
});
mediaPlayer3 = MediaPlayer.create(Case1.this, R.raw.case1_3);
play3 = (ImageView) findViewById(R.id.play3);
play3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer3.isPlaying()){
mediaPlayer3.pause();
play3.setImageResource(R.drawable.play_btn);
}
else{
mediaPlayer3.start();
play3.setImageResource(R.drawable.pause_btn);
}
}
});
mediaPlayer4 = MediaPlayer.create(Case1.this, R.raw.case1_4);
play4 = (ImageView) findViewById(R.id.play4);
play4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer4.isPlaying()){
mediaPlayer4.pause();
play4.setImageResource(R.drawable.play_btn);
}
else{
mediaPlayer4.start();
play4.setImageResource(R.drawable.pause_btn);
}
}
});
mediaPlayer5 = MediaPlayer.create(Case1.this, R.raw.case1_5);
play5 = (ImageView) findViewById(R.id.play5);
play5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer5.isPlaying()){
mediaPlayer5.pause();
play5.setImageResource(R.drawable.play_btn);
}
else{
mediaPlayer5.start();
play5.setImageResource(R.drawable.pause_btn);
}
}
});
}
}
你不需要創建 5 MediaPlayer
來實現你的需求,試試這個:
public class Case1 extends AppCompatActivity {
ImageView play, play2, play3, play4, play5;
MediaPlayer mediaPlayer;
private boolean isPlay, isPlay2, isPlay3, isPlay4, isPlay5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_case1);
mediaPlayer = new MediaPlayer();
play = (ImageView) findViewById(R.id.play1);
play.setOnClickListener(v -> {
if (isPlay && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play.setImageResource(R.drawable.play_btn);
} else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), raw2Uri(R.raw.case1_1));
mediaPlayer.prepare();
mediaPlayer.start();
pauseAllPlayers();
play.setImageResource(R.drawable.pause_btn);
} catch (IOException e) {
e.printStackTrace();
}
}
isPlay = true;
isPlay2 = false;
isPlay3 = false;
isPlay4 = false;
isPlay5 = false;
});
play2 = (ImageView) findViewById(R.id.play2);
play2.setOnClickListener(v -> {
if (isPlay2 && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play2.setImageResource(R.drawable.play_btn);
} else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), raw2Uri(R.raw.case1_2));
mediaPlayer.prepare();
mediaPlayer.start();
pauseAllPlayers();
play2.setImageResource(R.drawable.pause_btn);
} catch (IOException e) {
e.printStackTrace();
}
}
isPlay = false;
isPlay2 = true;
isPlay3 = false;
isPlay4 = false;
isPlay5 = false;
});
play3 = (ImageView) findViewById(R.id.play3);
play3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isPlay3 && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play3.setImageResource(R.drawable.play_btn);
} else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), raw2Uri(R.raw.case1_3));
mediaPlayer.prepare();
mediaPlayer.start();
pauseAllPlayers();
play3.setImageResource(R.drawable.pause_btn);
} catch (IOException e) {
e.printStackTrace();
}
}
isPlay = false;
isPlay2 = false;
isPlay3 = true;
isPlay4 = false;
isPlay5 = false;
}
});
play4 = (ImageView) findViewById(R.id.play4);
play4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isPlay4 && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play4.setImageResource(R.drawable.play_btn);
ToastUtils.showLong("PAUSED");
} else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), raw2Uri(R.raw.case1_4));
mediaPlayer.prepare();
mediaPlayer.start();
pauseAllPlayers();
play4.setImageResource(R.drawable.pause_btn);
ToastUtils.showLong("PLAYED");
} catch (IOException e) {
e.printStackTrace();
}
}
isPlay = false;
isPlay2 = false;
isPlay3 = false;
isPlay4 = true;
isPlay5 = false;
}
});
play5 = (ImageView) findViewById(R.id.play5);
play5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isPlay5 && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play5.setImageResource(R.drawable.play_btn);
} else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), raw2Uri(R.raw.case1_5));
mediaPlayer.prepare();
mediaPlayer.start();
pauseAllPlayers();
play5.setImageResource(R.drawable.pause_btn);
} catch (IOException e) {
e.printStackTrace();
}
}
isPlay = false;
isPlay2 = false;
isPlay3 = false;
isPlay4 = false;
isPlay5 = true;
}
});
}
private Uri raw2Uri(int raw) {
return Uri.parse("android.resource://" + getPackageName() + "/" + raw);
}
private void pauseAllPlayers() {
play.setImageResource(R.drawable.play_btn);
play2.setImageResource(R.drawable.play_btn);
play3.setImageResource(R.drawable.play_btn);
play4.setImageResource(R.drawable.play_btn);
play5.setImageResource(R.drawable.play_btn);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.