使用同一按钮播放和暂停

时间:2018-08-12 09:20:37

标签: android android-mediaplayer

我只想使它具有两个功能的一个按钮。首先单击我要播放它,然后单击我要暂停它。当我再次单击它时,它会从中断处继续。

JAVA侧面;

MediaPlayer海洋;

DECLARE
CURSOR CUR_DAILY_UPDATE IS

select id, amount,status from trxn; 

REC_LON_UP CUR_DAILY_UPDATE%ROWTYPE;
BEGIN 
OPEN CUR_DAILY_UPDATE;
  LOOP
    FETCH CUR_DAILY_UPDATE INTO REC_LON_UP;
    EXIT WHEN CUR_DAILY_UPDATE%NOTFOUND;

        UPDATE trxn_dup FINAL_TAB
        SET FINAL_TAB.amount = REC_LON_UP.amount
        ,FINAL_TAB.status = REC_LON_UP.status
        WHERE FINAL_TAB.id = REC_LON_UP.id;   

  END LOOP;  
  COMMIT;
CLOSE CUR_DAILY_UPDATE;
END;

活动侧:

@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();
}}

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

由于海洋是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();
        }
    }
}

答案 2 :(得分:0)

很简单,使用一个checker变量来跟踪动作。

在int / boolean中,在您的isPlay中创建一个全局变量play,并通过if语句检查它是否正在播放或暂停。如果正在播放ocean.pause();,请设置按钮背景暂停,反之亦然。

希望有帮助