gpt4 book ai didi

android - 如何在exoplayer中监控播放位置

转载 作者:行者123 更新时间:2023-12-05 00:20:00 24 4
gpt4 key购买 nike

我正在努力寻找一种方法来创建一个线程来监控 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.
}
}

最佳答案

Kotlin 协程方式

private fun pollCurrentDuration() = flow {
while (player.currentPosition + DURATION_OFFSET <= player.duration) {
emit(player.currentPosition + DURATION_OFFSET)
delay(DEFAULT_DELAY_MS)
}
}.conflate()

关于android - 如何在exoplayer中监控播放位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com