設定通知

玩家可監聽一系列事件,以指出玩家的狀態。

假設PTMediaPlayer是用戶端播放器的屬性,下例中的self.player代表PTMediaPlayer例項。 下列範例實作PTMediaPlayer中顯示的addObservers方法設定指示,並包含大部分通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerStatusChange:)  
      name:PTMediaPlayerStatusNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerNotification:)  
      name:PTMediaPlayerNewNotificationEntryAddedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerTimeChange:)  
      name:PTMediaPlayerTimeChangeNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemPlayStarted:)  
      name:PTMediaPlayerPlayStartedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemPlayCompleted:)  
      name:PTMediaPlayerPlayCompletedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemTimelineChanged:)  
      name:PTMediaPlayerTimelineChangedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemMediaSelectionOptionsAvailable:)  
      name:PTMediaPlayerMediaSelectionOptionsAvailableNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdBreakStarted:)  
      name:PTMediaPlayerAdBreakStartedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdBreakCompleted:)  
      name:PTMediaPlayerAdBreakCompletedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayStarted:)  
      name:PTMediaPlayerAdStartedNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayProgress:)  
      name:PTMediaPlayerAdProgressNotification object:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayCompleted:)  
      name:PTMediaPlayerAdCompletedNotification object:self.player]; 

iOS通知

ThePTMediaPlayerNotifications 類別會列出TVSDK派送給您播放器的通知。

通知 意義
PTMediaPlayerAdBreakCompletedNotification 廣告中斷結束。
PTMediaPlayerAdBreakStartedNotification 廣告插播開始。
PTMediaPlayerAdClickNotification 使用者按一下橫幅廣告。
PTMediaPlayerAdCompletedNotification 個別廣告結束。
PTMediaPlayerAdProgressNotification 廣告進展;在廣告播放時不斷傳送。
PTMediaPlayerAdStartedNotification 個別廣告開始。
PTBackgroundManifestErrorNotification 下載背景資訊清單失敗。
PTMediaPlayerBufferingCompletedNotification 緩衝已完成。
PTMediaPlayerBufferingStartedNotification 媒體播放器進入緩衝狀態。
PTAudioTrackChangeCompleted 目前播放媒體的音軌變更已完成。
PTAudioTrackChangeStarted 開始對當前播放的媒體的音軌進行改變。
PTMediaPlayerItemChangedNotification 已設定 PTMediaPlayer 的不同 PTMediaPlayerItem
PTMediaPlayerItemDRMMetadataChanged DRM中繼資料已變更。
PTMediaPlayerMediaSelectionOptionsAvailableNotification 有新的字幕和替代音軌( PTMediaSelectionOption )。
PTMediaPlayerNewNotificationEntryAddedNotification 新的 PTNotification 已新增至目前 PTMediaPlayerItem PTNotificationHistoryItem ,即在通知歷史記錄中新增通知事件時。
PTMediaPlayerPlayCompletedNotification 媒體播放已結束。
PTMediaPlayerSeekCompletedNotification 搜尋已完成。
PTMediaPlayerSeekErrorNotification 當前搜索操作失敗。
PTMediaPlayerSeekStartedNotification 搜尋正在開始。
PTMediaPlayerPlayStartedNotification 開始播放。
PTMediaPlayerStatusNotification 播放器狀態已變更。 可能的狀態值包括:
  • PTMediaPlayerStatusCreated

  • PTMediaPlayerStatusInitializing

  • PTMediaPlayerStatusInitialized

  • PTMediaPlayerStatusReady

  • PTMediaPlayerStatusPlaying

  • PTMediaPlayerStatusPaused

  • PTMediaPlayerStatusStopped

  • PTMediaPlayerStatusCompleted

  • PTMediaPlayerStatusError

PTMediaPlayerTimeChangeNotification 播放當前時間已更改。
PTMediaPlayerTimelineChangedNotification 目前播放器時間軸已變更。
PTTimedMetadataChangedNotification TVSDK遇到第一次出現訂閱的標籤。
PTTimedMetadataChangedInBackgroundNotification

在背景清單上標識預訂的標籤,並且根據該標籤準備新的 PTTimedMetadata 實例。

通知的範例處理常式

下列程式碼片段說明您使用通知的一些方式。

使用PTMediaPlayerAdBreakKey讀取PTAdBreak實例:

 - (void) onMediaPlayerAdBreakStarted:(NSNotification *) notification { 
   // Fetch the PTAdBreak instance using PTMediaPlayerAdBreakKey 
   PTAdBreak *adBreak = [notification.userInfo objectForKey:PTMediaPlayerAdBreakKey]; 
   ... 
   ... 
} 

設定subtitlesOptionsaudioOptions :

 - (void) onMediaPlayerItemMediaSelectionOptionsAvailable:(NSNotification \*) notification { 
   //SubtitlesOptions and audioOptions are set and accessible now. 
   NSArray* subtitlesOptions = self.player.currentItem.subtitlesOptions;  
   NSArray* audioOp tions = self.player.currentItem.audioOptions; 
   ... 
   ... 
} 

使用PTMediaPlayerAdKey讀取PTAd實例:

 - (void) onMediaPlayerAdPlayStarted:(NSNotification \*)  notification { 
   // Fetch the PTAdinstance using PTMediaPlayerAdKey 
   PTAd *ad = [notification.userInfo objectForKey:PTMediaPlayerAdKey]; 
   ... 
   ... 
} 

本頁內容