切换播放和暂停图像/音频Android

时间:2012-09-25 06:04:56

标签: android android-mediaplayer android-image

我的应用程序的播放和暂停按钮出现问题。我试图这样做,以便当我点击“播放”时播放音乐并显示暂停按钮,当我再次单击该按钮时,音乐暂停并再次显示播放按钮。我觉得我非常亲密,但是无法得到它!我能够播放音频和一次更改图像的按钮,但是我无法暂停它并让图像切换回来。请帮忙!我的代码如下:

button3.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(mysong.isPlaying()){
            mysong.pause();
            button3.setVisibility(ImageButton.VISIBLE);
            pausebutton3.setVisibility(ImageButton.GONE);


        }else {
            mysong.start();
                            button3.setVisibility(ImageButton.GONE)
                            pausebutton3.setVisibility(ImageButton.VISIBLE)

                 }
    }
});

当我将它设置为现在,音乐将播放,播放按钮将与暂停按钮交换(应该如此),但现在我无法让音乐暂停并恢复图像回来。

2 个答案:

答案 0 :(得分:3)

你的'切换回'的原因是因为'else'语句中没有任何内容告诉它做任何UI更改。

如果正在播放并且按下按钮,则按钮3变为VISIBLE且mysong为GONE,并且isPlaying()变为false。但是如果再次按下该按钮,因为isPlaying()为false,它会直接进入else,并调用mysong.start(); - 没有什么可以告诉mysong或button3的可见性改变回来。

或者,如果您只想更改图像(而不是隐藏和显示按钮),请尝试使用ImageButton和setImageResource();

    mPauseButton.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v) { 
            if (mysong.isPlaying()) {
                mysong.pause();
                button3.setImageResource(R.drawable.btn_play);  //Your playbutton image
            } else {
                mysong.start();
                button3.setImageResource(R.drawable.btn_pause);  //Your pausebutton image
            }
            .
            .
            .

我注意到的另一件事是你试图设置mySong和button3的可见性(mysong似乎是你的mediaPlayer - 它没有'可见性'而且不是ImageButton)。

答案 1 :(得分:1)

如果我理解,你有一个按钮,可以在播放/暂停之间切换。

button3.setOnClickListener(new View.OnClickListener() { 

public void onClick(View v) { 
        if(mysong.isPlaying()){ 
        mysong.pause(); 
        button3.setVisibility(ImageButton.VISIBLE);
        button3.setText("Pause");
        mysong.setVisibility(ImageButton.GONE); 
    } else { 
        mysong.start();
        button3.setText("Play");
    } 
} 

});