播放音频重复Android工作室

时间:2016-01-05 07:22:41

标签: java android

按下按钮,我正在播放一些音频。音频播放正常,但我想能够发送垃圾按钮,让音频播放播放播放。如果按下按钮,甚至停止播放和播放的位置。现在,当我按下按钮时,音频只会一直播放,如果我在播放音频时按下按钮,则没有任何反应。这是我的代码:

final MediaPlayer mp = MediaPlayer.create(this, R.raw.audio1);

        Button play_button = (Button)this.findViewById(R.id.button1);
        play_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                mp.start();
            }
        });

3 个答案:

答案 0 :(得分:0)

final MediaPlayer mp = MediaPlayer.create(this, R.raw.audio1);
mp.setLooping(true);

        Button play_button = (Button)this.findViewById(R.id.button1);
        play_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                mp.start();
            }
        });

将此代码替换为现有代码。如果要重复音频,则必须将循环属性设置为true。

答案 1 :(得分:0)

好的 - 我希望我做对了:

您希望在每次按下按钮时播放音频剪辑,并且在下一个剪辑开始之前应该完全播放剪辑。


这就是我要做的事情:

创建一个新的整数属性。
private int i = 0;

每次按下按钮都会增加。

Button play_button = (Button)this.findViewById(R.id.button1);
play_button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        IUP();
    }
});

public synchronized void IUP(){
    i++;
}

public synchronized void IDOWN(){
    i--;
}

public synchronized int getI(){ return i; }

public void startAudio(){ mp.start(); }

public boolean isPlaying(){ return mp.isPlaying(); }

为播放器使用单独的线程。

Thread player_thread = new Thread(new Runnable(){
     @Override
     public void run(){
       while(true){
           if(getI() > 0 && !isPlaying()){
               IDOWN();
               startAudio();
           }
       }
    }
}).start();

或者在MediaPlayer上使用OnCompletionListener

告诉我这是否是你要找的。

答案 2 :(得分:-1)

final MediaPlayer mp = MediaPlayer.create(this, R.raw.audio1);

Button play_button = (Button)this.findViewById(R.id.button1);
play_button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        if(play_button.getText().toString().equals("Stop")
        {
            mp.stop();
            play_button.setText("Play");
        }
        else
        {
            mp.start();
            play_button.setText("Stop");
        }
    }
});