【问题标题】:How to pause ExoPlayer 2 playback and resume (PlayerControl was removed)如何暂停 ExoPlayer 2 播放和恢复(PlayerControl 已删除)
【发布时间】:2017-03-26 02:56:13
【问题描述】:

ExoPlayer < 2.x 中有一个类PlayerControl 具有pause()resume() 函数,但它已被删除。我在 ExoPlayer 2 上找不到执行此操作的方法。

如何暂停和恢复播放?

【问题讨论】:

    标签: android video-streaming exoplayer exoplayer2.x


    【解决方案1】:

    您可以使用void setPlayWhenReady(boolean playWhenReady)
    如果 Exo 准备好了,传递 false 将暂停播放器。传递true 将恢复它。您可以使用getPlaybackState()查看播放器的状态。

    【讨论】:

    • 请用代码回答,以便人们正确理解
    • 使用同一个按钮暂停和播放您可以使用:player.setPlayWhenReady(!player.getPlayWhenReady());
    【解决方案2】:

    这是我的方式。创建两个方法并在需要时调用它们。

    private void pausePlayer(){
        player.setPlayWhenReady(false);
        player.getPlaybackState();
    }
    private void startPlayer(){
        player.setPlayWhenReady(true);
        player.getPlaybackState();
    }
    

    给他们打电话

     @Override
    protected void onPause() {
        super.onPause();
       pausePlayer();
    
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        startPlayer();
    }
    

    【讨论】:

    • 为什么在“准备好播放”更改后调用player.getPlaybackState();
    • Exoplayer take 1sec/2sec on resume @Override protected void onResume() { super.onResume(); startPlayer(); } 如何解决这个音频播放问题,但视频开始晚了
    • @Caipivara 不需要。也许他想证明它是可以使用的。
    【解决方案3】:

    播放 player.setPlayWhenReady(true);

    暂停

    player.setPlayWhenReady(false);

    你可以像这样检查播放状态:

    private boolean isPlaying() {
    return player != null
        && player.getPlaybackState() != Player.STATE_ENDED
        && player.getPlaybackState() != Player.STATE_IDLE
        && player.getPlayWhenReady();
    }
    

    这些代码来自PlayerControlView

    【讨论】:

    • 为什么不简单地player.getPlaybackState()== Player.STATE_READY
    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2013-11-21
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多