未调用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;
}
}
}
希望这有帮助