如何在使用ExoPlayer播放一段时间(从网址播放)后加载视频时显示进度条?

问题描述 投票:0回答:2

我使用Exoplayer播放来自Url的视频但是当视频在播放期间是缓冲区时,只有Suck Player并没有发生任何事情。所以,我决定在播放状态下显示视频缓冲时的进度条。那么,如何使用Exoplayer实现这一目标?

exoplayer
2个回答
2
投票

在布局文件中

<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>

在Activity Class中实现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() {

}

0
投票

实施您的播放器活动

ExoPlayer.EventListener

@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
   if (playbackState == ExoPlayer.STATE_BUFFERING) {
       //show your progress dialog here
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.