Nav*_*v89 4 android exoplayer exoplayer2.x
我正在努力寻找一种方法来创建线程来监视 Exoplayer 应用程序中的playbackPosition。
在下面的代码中,我需要的一个简单任务是通过重写onIsPlayingChanged函数每 1000 毫秒记录一次位置参数。但我知道这种情况只会发生一次,并且如果应用程序状态发生变化,但是为了使其连续,我认为我应该创建一个线程。请让我知道如何实现这一目标。正如你所看到的,注释的代码是我尝试过的,但它肯定是不正确的。
private class PlaybackStateListener implements Player.EventListener{
@Override
public void onIsPlayingChanged(boolean isPlaying) {
//TODO: Add handler to poll the playback position continuously.
/* if(isPlaying){
HandlerCompat.
postDelayed(new Runnable() {
@Override
public void run() {
long positionParam = playbackPosition;
}
});
}*/
if (isPlaying) {
Log.d(TAG, "Playing position is " + playbackPosition);
} else {
// Not playing because playback is paused, ended, suppressed, or the player
// is buffering, stopped or failed. Check player.getPlaybackState,
// player.getPlayWhenReady, player.getPlaybackError and
// player.getPlaybackSuppressionReason for details.
}
}
Run Code Online (Sandbox Code Playgroud)
Kotlin 协程方式
private fun pollCurrentDuration() = flow {
while (player.currentPosition + DURATION_OFFSET <= player.duration) {
emit(player.currentPosition + DURATION_OFFSET)
delay(DEFAULT_DELAY_MS)
}
}.conflate()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5010 次 |
| 最近记录: |