[英]Android ExoPlayer , Play/Pause button in the middle of VideoPlayer
[英]Pause exoplayer by Default and response to the play/pause button
加載視頻后,它開始播放。 我希望視頻在加載后第一次暫停。 如果用戶點擊恢復按鈕,它必須開始播放。 如何為 exoplayer2.ui.PlayerView 實現這一點?
我希望視頻在加載后第一次暫停
您可以使用player.setPlayWhenReady(false);
當您初始化Player
。
如果用戶單擊“繼續”按鈕,則必須開始播放。
您可以通過調用setControlDispatcher(@Nullable ControlDispatcher controlDispatcher)
方法在PlayView
添加ControlDispatcher
,例如playerView.setControlDispatcher(new MyDefaultControlDispatcher());
MyDefaultControlDispatcher
類是我的Custom 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
的播放/停止按鈕上獲得click事件。 您可以在PlayerControlView
的OnClick
方法中進行驗證。 我將顯示您的圖片如下:
PS:就像@ahmedaljubair提到的那樣, setPlayWhenReady
方法僅在播放器處於就緒狀態時才起作用。 因此,在調用setPlayWhenReady
方法暫停和恢復播放器時,需要檢查播放器的狀態。
將false
值傳遞給setPlayWhenReady(()
使其暫停:
player.setPlayWhenReady(false)
並且由於您要實現前面提到的“恢復”按鈕,因此請使用以下命令:
player.setPlayWhenReady(!player.getPlayWhenReady());
作為參考,引用文檔 :
void setPlayWhenReady(boolean playWhenReady)
設置當getPlaybackState()== STATE_READY時是否應繼續播放。 如果播放器已經處於就緒狀態,則可以使用此方法暫停和繼續播放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.