從建立MediaPlayer例項的那一刻到它終止的那一刻,此例項會從一個狀態轉換到下一個狀態。
可能的狀態如下:
閒置: MediaPlayerStatus.IDLE
正在初始化: MediaPlayerStatus.INITIALIZING
已初始化: MediaPlayerStatus.INITIALIZED
正在準備: MediaPlayerStatus.PREPARING
已準備: MediaPlayerStatus.PREPARED
正在播放: MediaPlayerStatus.PLAYING
已暫停: MediaPlayerStatus.PAUSED
搜尋: MediaPlayerStatus.SEEKING
完成: MediaPlayerStatus.COMPLETE
錯誤: MediaPlayerStatus.ERROR
已發行: MediaPlayerStatus.RELEASED
完整的狀態清單定義於 MediaPlayerStatus
.
瞭解播放器的狀態很有用,因為某些操作只有在播放器處於特定狀態時才被允許。 例如, play
當處於「閒置」狀態時,無法呼叫。 它必須在達到PREPARED狀態之後呼叫。 ERROR狀態也會變更後續發生的情況。
載入及播放媒體資源時,播放器會以下列方式轉換:
初始狀態為IDLE。
您的應用程式呼叫 MediaPlayer.replaceCurrentResource
,會將播放器移動至INITIALIZING狀態。
如果瀏覽器TVSDK成功載入資源,狀態會變更為INITIALIZED。
您的應用程式呼叫 MediaPlayer.prepareToPlay
,而狀態會變更為「準備中」。
瀏覽器TVSDK會準備媒體串流,並開始廣告解析和廣告插入(如果已啟用)。
完成此步驟後,即會在時間軸中插入廣告,或廣告程式失敗,且播放器狀態會變更為「已準備」。
當您的應用程式播放和暫停媒體時,狀態會在「正在播放」和「已暫停」之間移動。
播放或暫停時,當您離開播放、關閉裝置或切換應用程式時,狀態會變更為「已暫停」,而資源會釋放。 若要繼續,請還原媒體播放器。
當播放器到達資料流結尾時,狀態會變成「完成」。
當您的應用程式發行媒體播放器時,狀態會變更為「已發行」。
如果在處理過程中發生錯誤,狀態會變更為ERROR。
以下是MediaPlayer例項的生命週期圖例:
您可以使用狀態來向使用者提供程式的意見回饋(例如,在等待下一個狀態變更時執行旋轉圖示),或是在播放媒體時採取後續步驟,例如在呼叫下一個方法之前等待適當的狀態。
例如:
function onStateChanged(state) {
switch(state) {
// It is recommended that you call prepareToPlay()
// after receiving the INITIALIZED state
case AdobePSDK.MediaPlayerStatus.INITIALIZED:
mediaPlayer.prepareToPlay();
break;
}
}