好吧,我試圖讓用戶選擇從他們的iPod庫中的歌曲來聽,但我還是想在我的應用程序接收遠程控制的通知(耳機,鎖屏OSD等),所以我可以做一些額外的的東西。到目前爲止,我可以播放iPod音樂或耳機事件,但不能同時播放。如何從iPod應用程序播放音樂,同時仍然在應用程序中接收遠程控制事件?
這是我知道的那麼遠,
如果使用MPMusicPlayer,就可以輕鬆擁有對整個音樂庫進行編程訪問。但是,無論您使用applicationMusicPlayer還是ipodMusicPlayer,它都不會收到遠程通知。
如果您使用AVAudioPlayer(蘋果推薦的播放器爲您的應用中的大多數聲音),您可以輕鬆獲得遠程通知,但它本身無法訪問iPod庫。
AVAudioPlayer可以使用資產URL進行初始化,並且iPod庫(MPMediaItem類型)中的曲目確實有一個URL屬性,該URL屬性返回一個NSURL實例,該文檔顯示其明確用於AVAsset對象,但是當您嘗試用該NSURL初始化AVAudioPlayer,它失敗。 (我以前在iPod中的「正在播放」跟蹤這是一個MP3,它沒有返回一個有效的NSURL對象,但初始化失敗。更糟糕的是,當它是一個Audible.com文件時,NSURL產權單位出返回nil)。
如果您嘗試使用AVAudioPlayer的實例來獲取遠程事件(例如,使用空白聲音文件),則同時使用MPMusicPlayer類播放iPod音樂,您可以通過遙控器訪問,直到您真正開始播放iPod這是自從您的音頻會話取消激活並且系統音頻會話變爲活動狀態之後您丟失的時間。
如果您嘗試與#4相同,但您將音頻會話的類別設置爲可混合變體,則您的會話不會停用,但是一旦iPod開始播放,您仍然失去遙控功能。
總之,只要MPMusicPlayer正在播放時,我似乎無法獲得遠程的事件,我不知道任何其他方式來播放從其他iPod的圖書館含量比使用MPMusicPlayer。
任何關於如何解決這個建議將受到歡迎。創意或平面瘋狂。不要在意,只要它有效。
有人嗎?任何人? Bueller? Bueller?
M
Marquel,任何想法爲什麼Audible.com文件都以這種方式被破壞? – Genericrich 2011-05-24 14:54:05
我的猜測是它們沒有被破壞,而是Audible這樣做,所以你不能寫一個'Audible book ripping'應用程序,但這純粹是一種猜測。我從來沒有找到官方的理由。太臭了,因爲它殺了我的產品。讓我知道你是否曾經找到答案。 (另外,如果你喜歡,可以投這個問題。) – MarqueIV 2011-05-25 04:59:08
哇。感謝這個令人難以置信的詳細解釋寫得相當好。並組織得很漂亮。我在隨便的音樂遊戲中播放用戶的音頻文件,以響應他們的提示選擇。我也使用'[MPMusicPlayerController iPodMusicPlayer]'播放音頻文件,但意識到這是多麼俗氣。我試圖找出如何爲'applicationMusicPlayer'啓用背景,但無法弄清楚。這提供了我需要的答案的100%。你在晚上救了我。非常感謝你的難以置信的答案。你得到很多upvotes :) – 2011-08-19 04:16:19