无法处理背景音频的远程控制事件

| 在我的音频播放器的视图控制器中,我添加了以下内容:
- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
}

- (BOOL)canBecomeFirstResponder {
    return YES;
}
这会将播放器控件中的图标从iPod图标切换到我自己的应用程序,还将小播放图标放在状态栏中。 接下来,我将其添加到我的视图控制器中以处理远程事件:
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    NSLog(@\"REMOTE EVENT!\");
    switch (event.subtype) {
        case UIEventSubtypeRemoteControlTogglePlayPause:
            [streamer pause];
            break;
        case UIEventSubtypeRemoteControlPlay:
            [streamer start];
            break;
        case UIEventSubtypeRemoteControlPause:
            [streamer pause];
            break;
        case UIEventSubtypeRemoteControlStop:
            [streamer stop];
            break;
        default:
            break;
    }
}
但是,这从未被称为。我尝试在应用程序运行时调出播放控件,尝试返回主屏幕并点击一些播放控件,然后尝试使用耳塞控件。所有人都没有运气。 有人对我可能会出错的地方有任何指示吗? 谢谢。     
已邀请:
        您实现了错误的方法:应该对它进行-(void)viewDidAppear:(BOOL)动画,而不是-(void)viewWillAppear:(BOOL)动画。     
        我之前遇到过这个问题,发现我的问题是因为我的视图是一个子视图,而父级正在捕获远程事件。我将从AppDelegate开始并实现该方法,看看是否有任何内容发送到AppDelegate,然后从那里进行跟踪。可能有一个捕获事件且未传递事件的view或viewController。     
        您确定要设置音频会话吗?成为第一响应者之前,请使用AVAudioSession并将类别设置为AVAudioSessionCategoryPlayback。     

要回复问题请先登录注册