3

可能是一個簡單的問題 - iOS應用程序移動到後臺後能否繼續接收媒體播放器通知[NSNotifications](即MPMusicPlayerControllerNowPlayingItemDidChangeNotification)?iOS在後臺應用程序中接收媒體播放器通知

我特別使用iPodMusicPlayer播放主要應用程序功能上的歌曲,並且喜歡在應用程序進入背景模式後在此通知下實現代碼。

不要求代碼;只是在正確的方向重新點:背景媒體通知;)

回答

2

我做了一些檢查,因爲我需要相同。

不幸的是,我看到你的應用程序不會在後臺收到通知。

但是,我意識到它一旦恢復就會收到整個通知隊列。 問題是,收到的通知一起給你沒有關於他們被解僱的時間和日期的信息。

當然,由於您一次收到所有內容,即使您嘗試在MPMusicPlayerControllerNowPlayingItemDidChangeNotification之後保存nowPlayingItem,只有當您的應用再次變爲活動狀態時纔會看到當前項目,僅此而已。 不幸的是,我認爲我們不能做任何事情更多,因爲蘋果的文檔也說

通知沒有USERINFO字典

這意味着你不能得到任何信息了通知。

+0

我實際上已經找到了一個解決方案(或者更準確地說是解決方法):我只是在appdelegate類中使用didenterbackground方法來請求允許的最大額外時間(我認爲是500秒)。如果通知在500秒的窗口內(大部分歌曲都是!),就可以觸發通知。 :) – user1736431

+0

好的,但在額外的時間內你會執行什麼樣的操作?你能在500秒內「無所作爲」嗎? – super

+1

我發現了beginBackgroundTaskWithExpirationHandler方法。幸運的是,這允許任何通知(在我的情況下MPMusicPlayerControllerNowPlayingItemDidChangeNotification)在這段時間內仍然觸發,隨後觸發後續的編碼方法。我會做出詳細說明這種方法的文章..... – user1736431

相關問題