Я хочу, чтобы видео было приостановлено в самый первый раз после загрузки
. Вы можете использовать player.setPlayWhenReady(false);
при запуске Player
.
Если пользователь нажимает кнопку возобновления, он должен начать играть.
Вы можете добавить ControlDispatcher
в свой PlayView
, вызвав метод setControlDispatcher(@Nullable ControlDispatcher 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;
}
}
Вы можете наследовать от DefaultControlDispatcher
до Override
вашего любимого метода, например dispatchSetPlayWhenReady
, ИЛИ реализовать интерфейс ControlDispatcher
.
Метод dispatchSetPlayWhenReady
будет получать событие нажатия на кнопку воспроизведения / остановки в вашем PlayView
.Вы можете проверить это в вашем PlayerControlView
OnClick
методе.Я покажу вашу картинку, как показано ниже: ![enter image description here](https://i.stack.imgur.com/sn3nH.png)
PS: Как @ahmedaljubair упомянул, что метод setPlayWhenReady
работает только тогда, когда игрок находится вготовое состояние.Итак, вам нужно проверить состояние игрока, когда вы вызываете метод setPlayWhenReady
, чтобы приостановить и возобновить игрока.