簡體   English   中英

默認情況下暫停 exoplayer 並響應播放/暫停按鈕

[英]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;
    }
}

您可以繼承DefaultControlDispatcherOverride您喜歡的方法,例如dispatchSetPlayWhenReady實現ControlDispatcher接口。

dispatchSetPlayWhenReady方法將在PlayView的播放/停止按鈕上獲得click事件。 您可以在PlayerControlViewOnClick方法中進行驗證。 我將顯示您的圖片如下: 在此處輸入圖片說明

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM