Skip to content

iPhoneでマルチタスクビュー部分にある音楽プレイヤーインターフェースの使い方

2012年9月20日

長いこと調べてやっとこさわかりました。

この部分を使うためのキーワードがわかんなかったから時間がかかった…。

どうやらあの部分は「RemoteControl」という部分らしく、ずっとiPodPlayerとかAVAudioPlayerでしらべてて出て来ませんでした。

やり方としてはそこまで難しいこともなく、
[AVAudioPlayer alloc]をする前に、

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

をしてやる。
これをすることで、まずマルチタスク部分に利用中アプリの表示が出ます。

ただこれだけでは終わりません。そのイベントを受け取るデリゲートメソッドが必要です。

//リモートコントロールのデリゲート
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
    NSLog(@"receive remote control events [%d]",event.subtype);
    switch (event.subtype) {
        case 103: //center button
            [self playButtonAction:nil];
            break;
        case 105: //leftButton
            [self topButtonAction];
            break;
        default:
            break;
    }
}

こんな感じのメソッドです。
103が再生、停止ボタン。104が早送り、105が巻き戻しボタンになってます。

ただ、これだけでもメソッドは受け取れません。
再生ビューをfirstResponderにしないとメソッドが動かないので、

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    //ファーストレスポンダ登録(リモート操作用)
    [self becomeFirstResponder];
}

- (void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:YES];
    //ファーストレスポンダ解除(リモート操作用)
    [self resignFirstResponder];
}

とします。

これらでやっと動きます。

もちろん、バックグラウンド再生の設定も予めしていなければ、バックグラウンド再生されないのでそのへんは各自行なってください。ios avaudio background とかで検索すれば出てくると思います。

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。