2015-02-10 85 views
2

應該可以在後臺調用beginReceivingRemoteControlEvents嗎?有沒有人有類似的情況經驗?在後臺調用beginReceivingRemoteControlEvents

到目前爲止,我已經得出結論,我無法更改類別並在後臺繼續使用遙控器。

當我在諸如AVAudioSessionCategoryPlayback或AVAudioSessionCategoryPlayAndRecord之類的類別之間切換時,音頻會話被停用,我必須再次調用beginReceivingRemoteControlEvents。當這在前臺完成時,它完美地工作。當它在後臺完成時,似乎新的beginReceivingRemoteControlEvents不起作用。

任何幫助我如何能夠實現這樣的事情將非常感激。

回答

2

而不是使用beginReceivingRemoteControlEvents,您可能想要使用較新的MPRemoteCommandCenter。例如:

MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter]; 

    [commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) { 
     NSLog(@"toggle button pressed"); 
     return MPRemoteCommandHandlerStatusSuccess; 
    }]; 

,或者,如果你喜歡使用的方法,而不是塊:

[commandCenter.togglePlayPauseCommand addTarget:self action:@selector(toggleButtonAction)]; 

要停止:

[commandCenter.togglePlayPauseCommand removeTarget:self]; 

或:

[commandCenter.togglePlayPauseCommand removeTarget:self action:@selector(toggleButtonAction)]; 

您需要將其添加到f的包含區域ile:

@import MediaPlayer;