简体   繁体   English

如何监听android MediaPlayer position变化事件

[英]How to listen to android MediaPlayer position change event

While playing a video nor audio via the Android MediaPlayer how can one receive every 10 ms (or any specific delay) the current player position, while its playing (and stop receiving while its not playing)通过 Android MediaPlayer播放视频或音频时,如何每 10 毫秒(或任何特定延迟)接收当前播放器 position,同时播放(并在不播放时停止接收)

I prefer not to use handler that post delay itself.我宁愿不使用处理程序延迟本身。 It needs to be cancelable.它需要是可取消的。

You can use a Timer :您可以使用Timer

//member field 
Timer timer;


//somewhere in your code:

timer = new Timer();

timer.schedule(new TimerTask() {

@Override
public void run() {

if(mediaPlayer.isPlaying()){

//get current position of playback because player is playing

int position = mediaPlayer.getCurrentPosition();
Log.d("POSITION" , String.valueOf(position));

}else{

//player is not playing do nothing.......

}


}

},0,1000); //1000 is a long value in milliseconds (in this case it runs every 1 second)

When you want to cancel the timer:当你想取消定时器时:

timer.cancel();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM