【问题标题】:Switch Play and Pause Image/Audio Android切换播放和暂停图像/音频 Android
【发布时间】:2012-09-25 06:04:56
【问题描述】:

我的应用程序的播放和暂停按钮出现问题。我正在努力做到这一点,以便当我单击“播放”时播放音乐并显示暂停按钮,当我再次单击该按钮时,音乐暂停并再次显示播放按钮。我觉得我很接近,但就是无法得到它!我可以让音频播放和按钮更改图像一次,但是我无法暂停它并让图像切换回来。请帮忙!我的代码如下:

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)

                 }
    }
});

当我现在这样设置时,音乐将播放,播放按钮将与暂停按钮交换(应该如此),但现在我无法暂停音乐和恢复图像返回。

【问题讨论】:

  • 什么是button3?我的歌是什么?
  • button3 是播放按钮,pausebutton3 是暂停按钮,mysong 是原始文件

标签: android android-mediaplayer android-image


【解决方案1】:

您的不“切换回”的原因是因为“else”语句中没有任何内容告诉它进行任何 UI 更改。

如果它正在播放并且按钮被按下,则 button3 变为 VISIBLE 并且 mysong 已消失,并且 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)。

【讨论】:

  • 我编辑了我的初始代码,我不小心发布了旧代码而不是新代码(我有超过 60 个我正在尝试播放的音频样本)。如果您能继续向我提供您的见解,我将永远欠您的债!
【解决方案2】:

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

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");
    } 
} 

});

【讨论】:

    猜你喜欢
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多