0

問題:

アプリケーションの音声が中断後に再開されません (通話中や他のアプリケーションの使用時など)。この問題は、割り込みが発生する前にアプリケーションが既にバックグラウンド状態にある場合に発生します。

割り込みを処理するコード:

- (void)handleInterruption:(NSNotification *) notification{
    if (notification.name != AVAudioSessionInterruptionNotification || notification.userInfo == nil) {
        return;
    }

    NSDictionary *info = notification.userInfo;

    if ([notification.name isEqualToString:AVAudioSessionInterruptionNotification]) {

        if ([[info valueForKey:AVAudioSessionInterruptionTypeKey] isEqualToNumber:[NSNumber numberWithInt:AVAudioSessionInterruptionTypeBegan]]) {


            NSLog(@"InterruptionTypeBegan");

        } else {
            NSLog(@"InterruptionTypeEnded");
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
                NSLog(@"playing audio");

               self->_audioPlayer.numberOfLoops = -1;
               [self->_audioPlayer play];

            });
        }
    }
}

Xcode コンソールでは、次の順序でログが表示されますが、オーディオは再生されません。

  1. 中断の種類開始
  2. 中断タイプ終了
  3. オーディオの再生

このトピックに関する提案や考えをいただければ幸いです。ありがとうございました。

編集:

Saavn や Spotify などの多くのオンライン音楽ストリーミング アプリで同じ問題が発生していることに気付きました。

4

0 に答える 0