2015-05-20 76 views
0

我正在製作處理音樂播放的iPhone音樂應用程序&暫停並保留其自己的播放列表。我試圖讓播放/暫停遙控功能(在耳塞和滑動屏幕上)在我的應用程序中播放音樂。MPRemoteCommandCenter事件處理程序從未觸發

這裏是我放入與音樂播放器相關的初始化方法(它是MPMusicPlayerController的一個實例,我確定通過調試調用這段代碼)的代碼,我將討論這個問題I

[self.musicController beginGeneratingPlaybackNotifications]; 

// listen to remote control events 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];  

if ([self canBecomeFirstResponder]) { 
    NSLog(@"Can be first responder"); 
    [self becomeFirstResponder]; 
    NSLog([NSString stringWithFormat: @"is first responder now? %@", [self isFirstResponder] ? @"yes" : @"no"]); 
} else { 
    NSLog(@"Cannot be first responder"); 
} 

MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter]; 

[commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent *event) { 
    NSLog(@"TK: toggle command"); 
    return nil; 
}]; 

[commandCenter.playCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent *event) { 
    NSLog(@"TK: play command"); 
    return nil; 
}]; 

[commandCenter.pauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent *event) { 
    NSLog(@"TK: pause command"); 
    return nil; 
}]; 

我的問題:「M代碼後,面對加入上面的代碼後,當我按下滑屏幕上的播放/暫停按鈕,當音樂在我的應用程序打,沒有調試信息中顯示出來日誌,意味着事件處理程序塊沒有被觸發。

當我在我的應用程序中播放音樂時,當我按下蘋果耳機上的播放/暫停按鈕時,系統開始在我的iOS音樂庫中播放隨機音樂,並且它播放的歌曲未出現在播放我的應用程序列表,這意味着除了通過執行上述步驟外,沒有任何合法的方法可以從我的應用程序播放此歌曲。

注意:日誌的輸出爲「不能成爲第一響應者」。

回答

0

您應該啓用視圖(視圖控制器),成爲第一個響應者

- (BOOL)canBecomeFirstResponder { return true; }

相關問題