iOS Developer Libraryの「iOSイベント処理ガイド」(英語版はEvent Handling Guide for iOS)に沿って、サンプルを公開します。今回が最後のイベント処理「リモートコントロールイベント」です。
リモートコントロールイベント【iOS 4.0以降】
「iOSイベント処理ガイド」の初回「マルチタッチイベントサンプル1 - Gesture Recognizer」にも紹介した図ですが、今回は「Remote-control events」のところになります。iPhoneに付属のイヤホンを使い、音楽プレイヤーの「一時停止」「再生」「次の曲へ」といった操作をすることができます。
ドキュメントにも書かれていますが、音楽・映像だけではなく、「画像」などのマルチメディアを操作することを想定しているようです。ただ、音楽以外に使うのは馴染みもなく実用性のあるアプリは難しいかもしれません。
実装の手順
- ファーストレスポンダになる
- (BOOL)canBecomeFirstResponder { return YES; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder]; }
- リモートコントロールイベントの処理
- (void)remoteControlReceivedWithEvent:(UIEvent *)event { if (event.type == UIEventTypeRemoteControl) { switch (event.subtype) { case UIEventSubtypeRemoteControlPlay: // 再生 break; case UIEventSubtypeRemoteControlPause: // 一時停止 break; case UIEventSubtypeRemoteControlStop: // 停止 break; case UIEventSubtypeRemoteControlTogglePlayPause: // 「Now Playing」の再生・一時停止から呼ばれる break; case UIEventSubtypeRemoteControlNextTrack: // 次の曲へ break; case UIEventSubtypeRemoteControlPreviousTrack: // 前の曲へ break; case UIEventSubtypeRemoteControlBeginSeekingBackward: // 巻き戻し開始 break; case UIEventSubtypeRemoteControlEndSeekingBackward: // 巻き戻し終了 break; case UIEventSubtypeRemoteControlBeginSeekingForward: // 早送り開始 break; case UIEventSubtypeRemoteControlEndSeekingForward: // 早送り終了 break; default: // UIEventSubtypeNone と UIEventSubtypeMotionShakeなので来ない break; } } }
- 管理を終える場合、リモートコントロールイベントの停止
- (void)viewWillDisappear:(BOOL)animated { [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; [self resignFirstResponder]; [super viewWillDisappear:animated]; }
「Now Playing」コントロールとは
リモートコントロールイベントは、イヤホンなどから操作することができるのですが、それらが無くともリモートコントロールイベントをアプリケーションに送ることができます。それが「Now Playing」コントロールです。音楽を再生すると、この「Now Playing」コントロールに表示されるようになります。ダブルタップでアプリ一覧を表示 | スワイプすると表示される |
サンプル
ソースコードはGitHubにて公開しています。iOS-SampleCodes/RemoteControlSample - GitHub
なお、サンプルに含めている音源は、「音楽素材/魔王魂」様のものを利用させていただいております。ゲーム音楽に使える音楽ばかりで格好良いです。
起動時 | 「Now Playing」に表示されます |
「再生」ボタンで再生 | 「一時停止」ボタンで一時停止 |
「次の曲」ボタン | 長押しで「早送り」の開始 | 離すと「早送り」の停止 |
0 コメント:
コメントを投稿