2012-02-26 63 views
2

問題不起作用1. 我看到下面使用addPeriodicTimeObserverForInterval接收更新每250毫秒和更新UI在iPhone 4上的行爲和iOS 5.0.1AVPlayer和addPeriodicTimeObserverForInterval當應用程序被切換到後臺

  • 寄存器。

  • 運行良好,直到應用程序去背景。例如。點擊主頁按鈕或鎖定屏幕,

  • 當應用程序回到前臺時,播放器會再次開始播放,但更新不會再次觸發。如果用戶在UI更新時再次點擊播放暫停按鈕,則再次開始觸發。 這可以在蘋果的demo應用程序中看到。

問題2

我們不能混用基於C與AV基礎類音頻會話的API?例如。 AudioInterruptions時我註冊了C基監聽器。但是當我用kAudioSessionCategory_PlayAndRecord使用AVPlayer時,他們不會被調用。當應用程序轉到後臺時,如果沒有調用基於C的偵聽器,AVPlayer會暫停。

這是預期還是我可以做點什麼?請注意,一旦我放置了AVPlayer實例,並且我的應用程序在kAudioSessionCategory_PlayAndRecord 設置爲類別時再次返回後臺,則會調用偵聽器函數。

+0

您是否註冊了遠程事件通知並將背景模式設置爲App播放音頻? (您還需要將視圖控制器設置爲第一響應者) – sooper 2012-02-26 23:49:08

+0

謝謝Sooper。但是你還沒有回答我的任何問題:(我不希望我的應用程序在後臺播放,實際上它是我想要的行爲。 – xmlsingh 2012-02-28 00:53:27

回答

0

對於你的第一個問題,很可能你沒有按照建議發佈addPeriodicTimeObserverForInterval。嘗試把這樣的事情在你的AppDelegate

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [_audioManager.audioPlayer removeTimeObserver:_audioManager.timeObserver]; 
    _audioManager.isUIActive = NO; 
} 

和適當的方法重新啓動週期時間觀察:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [_audioManager setUpTransportUI]; 
    _audioManager.isUIActive = YES; 
} 

其中setUpTransportUI再現你的時間觀察。

相關問題