我在安卓系统上使用的是exoplay。我需要显示进度指示器时,视频正在寻找。我可以开始在SEEKTO方法上显示进度指示器,但是当搜索完成时,我应该使用哪个回调方法来隐藏进度指示器。
vyu0f0g11#
实施ExoPlayer.EventListener。有一种方法onPlayerStateChanged。当playbackState == ExoPlayer.STATE_READY时,隐藏您的进度指示器。
ExoPlayer.EventListener
onPlayerStateChanged
playbackState == ExoPlayer.STATE_READY
xhv8bpkk2#
**简单回答:**听@Sough,结合使用EventListener.onPlaybackStateChanged和STATE_READY。
EventListener.onPlaybackStateChanged
STATE_READY
说来话长:
onSeekProcessed()乍听起来很完美,但自从ExoPlayer2.12.0版以来,它就被弃用了,并发表了以下评论:@不推荐使用的搜索将立即得到处理。转而收听#onPositionDisContinity(Int),原因为#DISSTUSTATION_REASON_SEEK。
onSeekProcessed()
因此,onPositionDiscontinuity(int)应该与DISCONTINUITY_REASON_SEEK一起使用。
onPositionDiscontinuity(int)
DISCONTINUITY_REASON_SEEK
不知何故,这让我想知道这是否真的会在搜索完成并且视频准备好毫无延迟地继续时触发(就像“onSeekProceded”中那样)。因为在语义上,搜索被发起的时刻可能已经被解释为位置不连续(如在“搜索被无延迟地处理”中)。
事实上,当您查看我在运行时情况下测量的事件的时间时,事情变得很明显:
0ms - <Seek initiated> 1ms - onPositionDiscontinuity -> DISCONTINUITY_REASON_SEEK 2ms - onPlaybackStateChanged -> STATE_BUFFERING 4ms - onSeekProcessed 208ms - onPlaybackStateChanged -> STATE_READY
这表明使用STATE_READY监听onPlaybackStateChanged仍然是最佳选择。
onPlaybackStateChanged
总结:onSeekProcessed听起来真的很好,但它做了错误的事情。因此,它已被弃用,并提供了一个替代方案。不幸的是,这不是预期中的事情。这很棘手,但却是真的。
onSeekProcessed
tnkciper3#
onSeekProcessed(),您将在Player.EventListener中得到这个。
Player.EventListener
3条答案
按热度按时间vyu0f0g11#
实施
ExoPlayer.EventListener
。有一种方法onPlayerStateChanged
。当playbackState == ExoPlayer.STATE_READY
时,隐藏您的进度指示器。xhv8bpkk2#
**简单回答:**听@Sough,结合使用
EventListener.onPlaybackStateChanged
和STATE_READY
。说来话长:
onSeekProcessed()
乍听起来很完美,但自从ExoPlayer2.12.0版以来,它就被弃用了,并发表了以下评论:@不推荐使用的搜索将立即得到处理。转而收听#onPositionDisContinity(Int),原因为#DISSTUSTATION_REASON_SEEK。
因此,
onPositionDiscontinuity(int)
应该与DISCONTINUITY_REASON_SEEK
一起使用。不知何故,这让我想知道这是否真的会在搜索完成并且视频准备好毫无延迟地继续时触发(就像“onSeekProceded”中那样)。因为在语义上,搜索被发起的时刻可能已经被解释为位置不连续(如在“搜索被无延迟地处理”中)。
事实上,当您查看我在运行时情况下测量的事件的时间时,事情变得很明显:
这表明使用
STATE_READY
监听onPlaybackStateChanged
仍然是最佳选择。总结:
onSeekProcessed
听起来真的很好,但它做了错误的事情。因此,它已被弃用,并提供了一个替代方案。不幸的是,这不是预期中的事情。这很棘手,但却是真的。tnkciper3#
onSeekProcessed()
,您将在Player.EventListener
中得到这个。