2011-12-29 9 views
4

自分のアプリケーションにロック画面のiPodコントロールを使用するにはどうすればよいですか?自分のアプリケーションのロック画面のiPodコントロール

私はMPNowPlayingInfoCenterを試しましたが、情報を設定するとどこにも表示されません。ロック画面ではなく、AppleTVのairplayではありません。

AVPlayerを使用してオーディオファイルを再生します。

答えて

12

Remote Control of Multimediaのドキュメントをご覧ください。

UIViewControllerサブクラスのリモコンイベントをリッスンする方法は次のとおりです。まず、それ以外のイベントは、アプリケーションデリゲートに転送されます、あなたのコントローラはレスポンダチェーンに参加します

- (BOOL)canBecomeFirstResponder 
{ 
    return YES; 
} 

適切な場合には、イベントの受信を開始し、あなたのコントローラファーストレスポンダにするためにアプリケーションを伝える:

// maybe not the best place but it works as an example 
- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    [self becomeFirstResponder]; 
} 

そして、それらへの対応:

ここでは明らかではありませんviewDidAppearはremoteControlReceivedWiながら、のViewControllerの中で宣言されなければならないということは何か
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { 

    if (receivedEvent.type == UIEventTypeRemoteControl) { 

     switch (receivedEvent.subtype) { 

      case UIEventSubtypeRemoteControlTogglePlayPause: 
       [self playOrStop: nil]; 
       break; 

      case UIEventSubtypeRemoteControlPreviousTrack: 
       [self previousTrack: nil]; 
       break; 

      case UIEventSubtypeRemoteControlNextTrack: 
       [self nextTrack: nil]; 
       break; 

      default: 
       break; 
     } 
    } 
} 
+1

thEventは、アプリケーションデリゲートで宣言する必要があります。 – unsynchronized

+0

これは必ずしも必要ではありませんが、前の例では当てはまりました。私はドキュメンテーションから微妙な点を伝えるのを忘れていました: 'UIViewController'はレスポンダチェーンに参加できますが、' - (BOOL)canBecomeFirstResponder'をオーバーライドして 'YES'を返すだけです。私の編集を参照してください。 –

関連する問題