直接執行個體化MediaResource並載入要播放的視訊內容,以載入資源。 這是載入介質資源的一種方法。
使用要播放的新資源設定MediaPlayer
對象的可播放項。
呼叫MediaPlayer.replaceCurrentResource
並傳遞現有的MediaResource
例項,以取代您現有的MediaPlayer目前可播放的項目。
請至少檢查下列變更:
已初始化
準備好
錯誤
通過這些事件,MediaPlayer
對象可以在媒體資源成功載入時通知您的應用程式。
當媒體播放器的狀態更改為「已初始化」時,您可以調用MediaPlayer.prepareToPlay
「已初始化」狀態表示介質已成功載入。 呼叫prepareToPlay
會啟動廣告解析度和位置處理程式(如果有的話)。
當媒體播放器狀態變更為PREPARED時,媒體串流已成功載入並準備播放。
載入媒體串流時,會建立MediaPlayerItem
。
如果發生故障,MediaPlayer會切換至「錯誤」狀態。 它還會將STATUS_CHANGED
事件分派到您的MediaPlayerStatusChangeEvent
回呼,以通知您的應用程式。
這會傳遞數個參數:
類型字串的type
參數,其值為ERROR
。
MediaError
參數,您可用來取得包含錯誤事件診斷資訊的通知。
以下簡化的范常式式碼說明載入媒體資源的程式:
// mediaResource is a properly configured MediaResource instance
// mediaPlayer is a MediaPlayer instance
// register an event listener with the MediaPlayer instance
mediaPlayer.addEventListener(MediaPlayerStatusChangeEvent.STATUS_CHANGED,
onStatusChanged);
private function onStatusChanged(event:MediaPlayerStatusChangeEvent):void {
switch(event.status) {
case MediaPlayerStatus.INITIALIZED:
// at this point, the resource is successfully loaded
// the media player will provide a reference to the current
// "playable item" ( is guarantee to be valid and not-null).
var playerItem: MediaPlayerItem = mediaPlayer.currentItem;
// we can take a look at the media item characteristics like
// alternate audio tracks, profile information, if is a live stream
// if is drm protected
mediaPlayer.prepareToPlay();
break;
case MediaPlayerStatus.PREPARED:
// at this point, the resource is successfully processed all
// advertisement placements have been executed and the the
// MediaPlayer is ready to start the playback
if (autoPlay) {
mediaPlayer.play();
}
break;
case MediaPlayerStatus.ERROR:
// something bad happened - the resource cannot be loaded
// details about the problem are provided via the event.error property
break;
// implementation of the other methods in the PlaybackEventListener interface
...
}
}