実装済みのサンプルコードはこちら。
まず、ステータスバー上のアイコンにはいくつかあり、例えばネットワークアクセス時のインジケーターアイコンがあります。これは容易に表示/非表示できます。
(参考)インジケーターアイコンの表示/非表示コード例:
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
しかし、再生アイコンも似たように表示できるのかと思いきや、こちらは少しやっかいです。
再生アイコンは、ある条件下かつ、MPMoviePlayerController等のプレイヤーインスタンスの再生時に副次的に表示されるようです。
具体的には、次のコードを前処理として実行し、その後にプレイヤーを再生させる必要があります。
- (void)initializeBackgroundPlayback { AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *e = nil; [audioSession setCategory:AVAudioSessionCategoryPlayback error:&e]; if (e) { // error handling } e = nil; [audioSession setActive:YES error:&e]; if (e) { // error handling } // self.moviePlayer.useApplicationAudioSession = YES; } - (void)initializeRemoteControl { [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder]; }
その他サンプルコードには、RemoteControl(イヤホン付属の音楽コントローラ、またはホームボタンをダブルクリック>マルチタスクアプリ一覧を右スワイプすると表示される音楽コントローラ)のイベントハンドラも実装してあります。RemoteControlからの再生でも再生アイコンが表示されます。
参考:iOSイベント処理ガイド (英語版: Event Handling Guide for iOS)
永野 哲久 / ソフトバンククリエイティブ / 売り上げランキング: 28301
おすすめ度の平均:
iPhoneプログラマは持っていて損のない良書オーディオ系アプリ開発のバイブル
あまり知られたくない本です。
必要な事は書かれてます。
明快な説明と実践的なサンプルコードがすばらしい
posted with amazlet at 2011.2.18
0 件のコメント:
コメントを投稿