概述

為提供更順暢的檢視體驗,TVSDK有時會緩衝視訊串流。 您可以設定播放器的緩衝方式。

TVSDK定義至少30秒的播放緩衝長度,以及媒體開始播放前的初始緩衝時間,至少2秒。 在應用程式呼叫play後,但在播放開始前,TVSDK會將媒體緩衝至初始時間,以便在實際開始播放時提供順暢的開始。

您可以通過定義新的緩衝策略來更改緩衝時間,並且可以通過使用立即啟動來更改初始緩衝的時間。

緩衝時間策略

視您的環境(包括裝置、作業系統或網路條件)而定,您可以為播放器設定不同的緩衝原則,例如變更初始緩衝和持續播放緩衝的最短持續時間。

呼叫play後,媒體播放器會開始緩衝視訊。 當媒體播放器緩衝了初始緩衝時間所指定的視訊量時,就會開始播放。 此程式可縮短啟動時間,因為播放器不會等到整個播放緩衝區填滿後再開始播放。 而是在緩衝了數秒初始後,開始播放。

在轉譯視訊時,TVSDK會持續緩衝新片段,直到它緩衝播放緩衝時間所指定的量為止。 如果目前的緩衝區長度降到播放緩衝時間以下,播放器將下載其他片段。 當目前的緩衝區長度超過播放緩衝時間數秒後,TVSDK將停止下載片段。

秘訣

如果初始緩衝值很高,則可能會在開始之前為使用者提供較長的初始緩衝時間。 這可能會讓播放更長時間流暢;但是,如果網路條件較差,則可能會延遲初始播放。

如果您透過呼叫prepareBuffer來立即啟用,則初始緩衝會從此時開始,而非等待play

設定緩衝時間

MediaPlayer提供設定和取得初始緩衝時間和播放緩衝時間的方法。

秘訣

如果您在開始播放之前未設定緩衝區控制參數,媒體播放器預設初始緩衝區為2秒,而持續播放緩衝區時間為30秒。

  1. 設定BufferControlParameters對象,該對象封裝初始緩衝時間和回放緩衝時間控制參數。

    此類提供以下工廠方法:

    • 要將初始緩衝時間設定為等於播放緩衝時間:

      public static BufferControlParameters createSimple(long bufferTime)
      
    • 若要設定初始和播放緩衝時間:

      public static BufferControlParameters createDual(
        long initialBuffer,
        long bufferTime)
      

    如果參數無效,這些方法會擲出MediaPlayerException並顯示錯誤代碼PSDKErrorCode.INVALID_ARGUMENT,例如當滿足以下條件時:

    • 初始緩衝時間小於零。
    • 初始緩衝時間大於緩衝時間。
  2. 要設定緩衝區參數值,請使用以下方法:MediaPlayer

    void setBufferControlParameters(BufferControlParameters params)
    
  3. 要獲取當前緩衝區參數值,請使用以下MediaPlayer方法:

       BufferControlParameters getBufferControlParameters()
    

例如,若要將初始緩衝區設為5秒,而播放緩衝區時間設為30秒:

mediaPlayer.setBufferControlParameters(BufferControlParameters.createDual(5000, 30000));

本頁內容