我在视图控制器中使用MPMoviePlayer
。在viewwillappear
我在做
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
但是当我点击播放器上的下一首曲目或之前的曲目按钮时,-(void)remoteControlReceivedWithEvent:(UIEvent *)event
无法随时调用。
我还在viewwillappear
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr];
[[AVAudioSession sharedInstance] setActive: YES error: &activationErr];
让我知道可能是什么问题?或者给我一个示例或一些示例代码,我们可以通知UIEventSubtypeRemoteControlNextTrack
和UIEventSubtypeRemoteControlPreviousTrack
个事件。
答案 0 :(得分:-1)
在我的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;
}
}
}
希望这会有所帮助。