我試圖在iOS應用程序中接收有關當前播放曲目的信息。這工作得很好,而iPhone是而不是連接到附件。如果我把它連接到我的車(歐寶雅特,iPhone插孔),下面的代碼將停止工作as described in the documentation:當iPhone連接到附件時,有沒有辦法訪問當前播放的曲目?
如果您創建了一個iPod音樂播放器和用戶使用家庭共享,從其他圖書館承擔着一個項目的該房產的價值是
nil
。
代碼:
// nil while connected to an accessory
MPMediaItem *nowPlayingMediaItem =
[[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem];
// Works while not connected to an accessory
NSString *title = [nowPlayingMediaItem valueForProperty:MPMediaItemPropertyTitle];
我甚至嘗試 「哈克」 這樣的東西訪問 「私人」 性質(original code):
MPMediaQuery *query=nil;
MPMediaItemCollection *collection=nil;
id internalPlayer=nil;
Ivar internalPlayeriVar = object_getInstanceVariable(iPod, "_internal", NULL);
internalPlayer = object_getIvar(iPod, internalPlayeriVar);
NSLog(@"internalPlayer: %@", internalPlayer);
Ivar queryIvar = object_getInstanceVariable(internalPlayer, "_query", NULL);
query = object_getIvar(internalPlayer, queryIvar); // nil everytime
Ivar collectionIvar = object_getInstanceVariable(internalPlayer,
"_itemCollection", NULL);
collection = object_getIvar(internalPlayer, collectionIvar); // nil everytime
或調用私有方法:
// Same behaviour like [iPod nowPlayingItem], works
// only while no accessory is connected
MPMediaItem *nowPlayingMediaItem =
[iPod nowPlayingItemAtIndex:[iPod indexOfNowPlayingItem]];
// Works while not connected to an accessory
NSString *title = [nowPlayingMediaItem valueForProperty:MPMediaItemPropertyTitle];
其還否解決方案一直訪問新的MPNowPlayingInfoCenter
,其nil
。
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo
我的車可以直接播放我的音樂,而無需使用iPhone應用程序和看來我的iPhone知道車上正在播放什麼,因爲它顯示在鎖屏上的標題,藝術家和覆蓋圖標(只有有)。內部玩法也增加了。
如果我檢查播放狀態下,如果車裏放着音樂也返回YES
:
[[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying
那麼,有沒有什麼辦法(可能是通過調用私有方法)來訪問這首歌,車目前在玩?
OT:當我看到您將您的汽車視爲手機的配件時,我不得不微笑:-) – Matthias 2012-02-22 14:53:15
您能解釋一下,如果您是通過耳機插孔或iPhone插孔連接的嗎?我還假設你的車正在從iPhone上播放音樂?如果iPhone正在播放歌曲,那麼我認爲iPhone實際上是播放音樂而不是汽車的人。您是否想通過應用程序播放音樂,並將其連接至汽車,以便將汽車揚聲器發出? – Bot 2012-02-23 00:52:50
我通過iPhone插孔連接iPhone。我不知道誰會在音樂播放器中播放音樂,但是我可以從我車內的信息顯示屏中選擇音樂。我只想在第三方應用程序中知道當前正在播放哪首歌曲。 (用第三方應用程序播放音樂也是可能的,但汽車音響控制僅適用於真正的「音樂」應用程序) – 2012-02-23 08:18:19