【问题标题】:How to Show Progressbar when video is loading after play some time (play from url) using ExoPlayer?如何在使用 ExoPlayer 播放一段时间(从 url 播放)后加载视频时显示进度条?
【发布时间】:2017-12-28 16:55:25
【问题描述】:

我使用 Exoplayer 播放来自 Url 的视频但是当视频在播放期间是 Buffer 时,只是 Suck Player 并且没有任何反应。所以,我决定在播放状态下的视频缓冲时显示进度条。 那么,如何使用 Exoplayer 来实现呢?

【问题讨论】:

    标签: exoplayer


    【解决方案1】:

    在布局文件中

    <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() {
    
    }
    

    【讨论】:

      【解决方案2】:

      实现你的玩家活动

      ExoPlayer.EventListener

      @Override
      public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
         if (playbackState == ExoPlayer.STATE_BUFFERING) {
             //show your progress dialog here
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-05-10
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-24
        • 2013-04-05
        相关资源
        最近更新 更多