媒體播放器的狀態會決定哪些動作合法。
使用媒體播放器狀態:
您可以擷取 MediaPlayer
物件與 MediaPlayer.getStatus()
.
狀態清單定義於 MediaPlayerStatus 列舉。
生命週期的狀態轉換圖 MediaPlayer
例項:
下表提供有關媒體播放器生命週期和狀態的詳細資訊:
狀態 | 發生於 |
---|---|
閒置 | 媒體播放器的初始狀態。 播放器已建立並正等候您指定媒體播放器專案。 |
正在初始化 | 您的應用程式呼叫 MediaPlayer.replaceCurrentItem() . 正在載入媒體播放器專案。 |
已初始化 | TVSDK已成功設定media-player專案。 |
正在準備 | 您的應用程式呼叫 MediaPlayer.prepareToPlay() . 媒體播放器正在載入媒體播放器專案和任何相關的資源。 |
已準備 | TVSDK已準備媒體串流,並嘗試執行廣告解析和廣告插入(如果已啟用)。 內容已準備且廣告已插入時間軸中,或廣告程式失敗。 緩衝或播放可以開始。 |
播放/暫停 | 當應用程式播放和暫停媒體時,媒體播放器會在這些狀態之間移動。 |
已暫停 | 如果應用程式在播放器播放或暫停時離開播放、關閉裝置或切換應用程式,媒體播放器會暫停並釋放資源。 通話 MediaPlayer.restore() 將播放器傳回至「暫停」前播放器的狀態。 例外情況是,如果呼叫暫停時播放器正在搜尋,則播放器會暫停然後暫停。 重要: 請記住以下資訊:
如果您一律想要在MediaPlayer還原時暫停播放,請讓應用程式呼叫 MediaPlayer.pause() 在Android活動的 onPause() 方法。 |
完成 | 播放器已到達資料流結尾,且播放已停止。 |
已發行 | 您的應用程式已發行媒體播放器,也會發行任何相關資源。 您無法再使用此例項。 |
錯誤 | 處理期間發生錯誤。 錯誤也可能會影響應用程式後續的功能。 如需詳細資訊,請參閱 設定錯誤處理 . |
您可以使用狀態來提供程式的意見回饋,例如,在等候下一個狀態變更時提供進度環資訊,或在播放媒體時採取後續步驟,例如在呼叫下一個方法之前等候適當的狀態。
例如:
mediaPlayer.addEventListener(MediaPlayerEvent STATUS_CHANGED, new StatusChangeEventListener() {
@Override
public void onStatusChanged(MediaPlayerStatusChangeEvent event) {
switch(event.getStatus()) {
case INITIALIZED:
mediaPlayer.prepareToPlay();
break;
case PREPARING:
showBufferingSpinner();
break;
case PREPARED:
hideBufferingSpinner();
mediaPlayer.play();
break;
...
}
...
}
});