【问题标题】:Pause exoplayer by Default and response to the play/pause button默认暂停 exoplayer 并响应播放/暂停按钮
【发布时间】:2019-07-01 10:27:56
【问题描述】:

加载视频后,它开始播放。 我希望视频在加载后第一次暂停。如果用户单击恢复按钮,它必须开始播放。如何为 exoplayer2.ui.PlayerView 实现这一点?

【问题讨论】:

标签: android video-streaming exoplayer2.x


【解决方案1】:

我希望视频在加载后第一次暂停

您可以在初始化Player 时使用player.setPlayWhenReady(false);

如果用户点击恢复按钮,它必须开始播放。

您可以通过调用setControlDispatcher(@Nullable ControlDispatcher controlDispatcher) 方法在PlayView 中添加ControlDispatcher,例如playerView.setControlDispatcher(new MyDefaultControlDispatcher());

MyDefaultControlDispatcher 类是我的自定义ControlDispatcher,如下:

private class MyDefaultControlDispatcher extends DefaultControlDispatcher {

    @Override
    public boolean dispatchSetPlayWhenReady(Player player, boolean playWhenReady) {
        super.dispatchSetPlayWhenReady(player, playWhenReady);
    if (playWhenReady && player.getPlaybackState() == Player.STATE_READY) {
        player.setPlayWhenReady(true);
    }
        return true;
    }
}

你可以继承DefaultControlDispatcherOverride你喜欢的方法,比如dispatchSetPlayWhenReadyOR实现接口ControlDispatcher

dispatchSetPlayWhenReady 方法将在您的PlayView 中的播放/停止按钮上获取您的点击事件。您可以在PlayerControlViewOnClick 方法中验证它。我将显示您的图片如下:

PS: 就像@ahmedaljubair 提到的setPlayWhenReady 方法仅在播放器处于就绪状态时才有效。因此,您需要在调用 setPlayWhenReady 方法暂停和恢复播放器时检查播放器的状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2019-06-25
    • 2020-08-31
    • 2016-08-13
    • 2014-08-21
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多