Can't beginReceivingRemoteControlEvents in iOS

前端 未结 4 1581
孤城傲影
孤城傲影 2021-02-14 17:04

In my app i want let user to control audio playback in background. I set backGround modes in .plist, and in plays in bg just like i wanted.But i can\'t get any response from tou

4条回答
  •  萌比男神i
    2021-02-14 17:53

    There is a newer mechanism for listening to remote control events. For example, to execute a block when the headphone play/pause button is pressed:

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

    or, if you prefer to use a method instead of a block:

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

    To stop:

        [commandCenter.togglePlayPauseCommand removeTarget:self];
    

    or:

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

    You'll need to add this to the includes area of your file:

    @import MediaPlayer;
    

    For it to work in the background, you must have the background audio mode added to your app's capabilities.

提交回复
热议问题