1

私の問題は、オーディオが iPad のバックグラウンドで再生されている場合、「アプリ アイコン」が表示されないことです。iPodMusicPlayerを使用しています。バックグラウンドでオーディオを再生するために、これらのコードを記述しました..

- (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
      [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated
{
     [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
     [self resignFirstResponder];
     [super viewWillDisappear:animated];
}

- (BOOL)canBecomeFirstResponder {
        return YES;
}

// iPod コントロールは、アプリがバックグラウンドにあるときにこれらのイベントを送信します

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
       if (receivedEvent.type == UIEventTypeRemoteControl) {
           switch (receivedEvent.subtype) {

           case UIEventSubtypeRemoteControlTogglePlayPause:
               [self performSelector:@selector(playPause:)];
               break;

           case UIEventSubtypeRemoteControlPreviousTrack:
            //[self previousSong:nil];
            //[self performSelector:@selector(previousSong:)];
            break;

           case UIEventSubtypeRemoteControlNextTrack:
               //[self performSelector:@selector(nextSong:)];
               break;
          default:
              break;
         }
     }
}

および info.plist 「必要なバックグラウンド モード」も設定しました

4

1 に答える 1

2

また、に追加UIBackgroundModesしてInfo.plist、その値を に設定する必要がありますaudio

バックグラウンドでタスクを実行する方法の詳細については、iOS アプリ プログラミング ガイド、特にアプリの状態とマルチタスキングのセクションを確認してください。

[アップデート]

また、次の 2 行を に追加application:didFinishLaunchingWithOptions:しますAppDelegate.m

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

そして、オーディオの再生を開始するときのこのコード:

UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
[_player play];
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

これでうまくいくはずです。シミュレーターとデバイスでテスト済み。

于 2012-04-10T09:17:39.913 に答える