從建立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
在IDLE狀態下無法呼叫。 必須在達到準備狀態後呼叫。 ERROR狀態也會更改接下來可能發生的情況。
當載入和播放媒體資源時,播放器會以下列方式轉換:
初始狀態為IDLE。
您的應用程式呼叫MediaPlayer.replaceCurrentResource
,這會將播放器移至INITIALIZING狀態。
如果瀏覽器TVSDK成功載入資源,狀態會變更為「已初始化」。
您的應用程式呼叫MediaPlayer.prepareToPlay
,而狀態會變更為「準備」。
瀏覽器TVSDK會準備媒體串流,並啟動廣告解析和廣告插入(如果已啟用)。
當此步驟完成時,廣告會插入時間軸或廣告程式失敗,而播放器狀態會變更為PREPARED。
當您的應用程式播放和暫停媒體時,狀態會在播放和暫停之間移動。
播放或暫停時,當您從播放導覽離開、關閉裝置或切換應用程式時,狀態會變更為「暫停」並釋放資源。 要繼續,請恢復媒體播放器。
當播放器到達串流結尾時,狀態會變為COMPLETE。
當您的應用程式發行媒體播放器時,狀態會變更為「已發行」。
如果在處理過程中發生錯誤,則狀態將更改為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;
}
}