簡體   English   中英

當另一個開始播放時停止播放音頻 android 工作室 Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM