【发布时间】:2017-12-28 16:55:25
【问题描述】:
我使用 Exoplayer 播放来自 Url 的视频但是当视频在播放期间是 Buffer 时,只是 Suck Player 并且没有任何反应。所以,我决定在播放状态下的视频缓冲时显示进度条。 那么,如何使用 Exoplayer 来实现呢?
【问题讨论】:
标签: exoplayer
我使用 Exoplayer 播放来自 Url 的视频但是当视频在播放期间是 Buffer 时,只是 Suck Player 并且没有任何反应。所以,我决定在播放状态下的视频缓冲时显示进度条。 那么,如何使用 Exoplayer 来实现呢?
【问题讨论】:
标签: exoplayer
在布局文件中
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/exo_player_progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
在活动类中实现ExoPlayer.EventListener并添加这个
@Override
public void onTimelineChanged(Timeline timeline, Object manifest) {
}
@Override
public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
}
@Override
public void onLoadingChanged(boolean isLoading) {
}
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if (playbackState == ExoPlayer.STATE_BUFFERING){
mProgressBar.setVisibility(View.VISIBLE);
} else {
mProgressBar.setVisibility(View.INVISIBLE);
}
}
@Override
public void onRepeatModeChanged(int repeatMode) {
}
@Override
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
}
@Override
public void onPlayerError(ExoPlaybackException error) {
}
@Override
public void onPositionDiscontinuity(int reason) {
}
@Override
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
}
@Override
public void onSeekProcessed() {
}
【讨论】:
实现你的玩家活动
ExoPlayer.EventListener
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if (playbackState == ExoPlayer.STATE_BUFFERING) {
//show your progress dialog here
}
}
【讨论】: