使用相同的按钮播放和暂停

Play and Pause using the same button

我想把它做成只有一个按钮有两个功能。第一次点击我想播放,第二次点击我想暂停。当我再次单击它时,它会从中断处继续。

JAVA 边;

MediaPlayer的海洋;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sound);
    ocean=MediaPlayer.create(Sound.this,R.raw.ocean);
}
public void play(View v){
    ocean.start();
}
public void pause(View V){
    ocean.pause();
}}

ACTIVITY 侧面:

 <Button
    android:id="@+id/play"
    android:layout_width="165dp"
    android:layout_height="0dp"
    android:layout_marginBottom="285dp"
    android:background="@drawable/oceansound"
    android:onClick="play"
    android:text=""/>

使用标志来指示播放器是打开还是关闭:

Boolean isOn = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sound);
    ocean=MediaPlayer.create(Sound.this,R.raw.ocean);
}
public void play(View v){
    if (!isOn) {
        ocean.start();
        isOn = true;
    } else {
        ocean.pause();
        isOn = false;
    }
}
}

很简单,使用检查器变量来跟踪操作。

创建一个全局变量isPlay in int / boolean,在你的play,做一个if语句来检查它是在播放还是在暂停,如果在播放,ocean.pause();,将按钮背景设置为暂停,反之亦然。

希望对您有所帮助

既然你有ocean是MediaPlayer对象,你可以通过ocean.isPlaying()检查歌曲是否正在播放,希望对你有所帮助。

public class MainActivity extends AppCompatActivity {
    MediaPlayer ocean;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sound);

        ocean = MediaPlayer.create(this, R.raw.ocean);
    }

    public void play(View view) {
        if (ocean.isPlaying()) {
            ocean.pause();
        } else {
            ocean.start();
        }
    }
}