未调用MPMoviePlayer的iphone remoteevent通知

未调用MPMoviePlayer的iphone remoteevent通知,iphone,mpmovieplayercontroller,mpmovieplayer,uievent,Iphone,Mpmovieplayercontroller,Mpmovieplayer,Uievent,我正在视图控制器中使用MPMoviePlayer。在视图中将显示我正在执行的操作 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder]; 但是当我在播放器上单击下一曲目或上一曲目按钮时,不会随时调用-(void)remoteControlReceivedWithEvent:(UIEvent*)事件 我还将以下代码包括在视图中 NSError *setC

我正在视图控制器中使用
MPMoviePlayer
。在
视图中将显示我正在执行的操作

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
但是当我在播放器上单击下一曲目或上一曲目按钮时,不会随时调用
-(void)remoteControlReceivedWithEvent:(UIEvent*)事件

我还将以下代码包括在
视图中

NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr];
[[AVAudioSession sharedInstance] setActive: YES error: &activationErr];

让我知道会有什么问题?或者给我一个示例或一些示例代码,我们可以在其中通知
uieventsubsubmitremotecontrolnexttrack
uieventsubmitremotecontrolprevioustrack
事件。

在我的appdelegate中

NSError *myErr;
NSError *activationError;
AVAudioSession *session = [AVAudioSession sharedInstance];

if( [session setCategory:AVAudioSessionCategoryPlayback error:&myErr] ) {
    if( [UIApplication instancesRespondToSelector: @selector (beginReceivingRemoteControlEvents)] ) {
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    }

    [session setDelegate: self];

    if( ![session setActive: YES error: &activationError] ) {
        NSLog(@"Audio Session error %@, %@- unable to setActive", activationError, [activationError userInfo]);
        return false;
    }
}
else    {
    NSLog(@"Audio Session error %@, %@ - unable to setCategory", myErr, [myErr userInfo]);
    return false;
}
然后在我的ViewController中我有

- (BOOL) canBecomeFirstResponder {
    return YES;
}

- (void) viewDidAppear:(BOOL)animated       {
    [super viewDidAppear:animated];
    [self becomeFirstResponder];
}

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

    if (receivedEvent.type == UIEventTypeRemoteControl) {

        switch (receivedEvent.subtype) {

            case UIEventSubtypeRemoteControlPlay:
                break;

            case UIEventSubtypeRemoteControlPause:
                break;

            case UIEventSubtypeRemoteControlStop:
                break;

            case UIEventSubtypeRemoteControlTogglePlayPause:
                break;

            case UIEventSubtypeRemoteControlNextTrack:
                break;

            case UIEventSubtypeRemoteControlPreviousTrack:
                break;

            case UIEventSubtypeRemoteControlBeginSeekingBackward:
                break;

            case UIEventSubtypeRemoteControlEndSeekingBackward:
                break;

            case UIEventSubtypeRemoteControlBeginSeekingForward:
                break;

            case UIEventSubtypeRemoteControlEndSeekingForward:
                break;

            default:
                break;
        }
    }
}
希望这有帮助