【问题标题】:iphone remoteevent notifications not getting called for MPMoviePlayeriphone 远程事件通知没有被调用 MPMoviePlayer
【发布时间】:2012-06-01 03:30:53
【问题描述】:

我在视图控制器中使用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];

让我知道可能是什么问题?或者给我一个例子或一些示例代码,我们可以在其中通知UIEventSubtypeRemoteControlNextTrackUIEventSubtypeRemoteControlPreviousTrack 事件。

【问题讨论】:

    标签: iphone mpmovieplayercontroller mpmovieplayer uievent


    【解决方案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;
            }
        }
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      相关资源
      最近更新 更多