AVAudioSessionInterruptionNotification未正确调用

 乐果Meng_501 发布于 2023-01-18 15:39

我正在制作一个音频流媒体应用程序,我遇到了中断问题.我已经读过我应该使用AVAudioSessionInterruptionNotification,但我的问题是它只在中断开始时被调用,而不是在它结束时被调用.这是我的代码.

static dispatch_once_t pred;
static Player *sharedAudioPlayer = nil;
dispatch_once(&pred, ^
              {
                  sharedAudioPlayer = [[self alloc] init];

                  [[NSNotificationCenter defaultCenter] addObserver:sharedAudioPlayer selector:@selector(playerItemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil];
                  [[NSNotificationCenter defaultCenter] addObserver:sharedAudioPlayer
                                                           selector:@selector(audioSessionInterrupted:)
                                                               name:AVAudioSessionInterruptionNotification
                                                             object:audioSession];
              });

然后

- (void)audioSessionInterrupted:(NSNotification*)notification {
NSDictionary *interruptionDictionary = [notification userInfo];
NSNumber *interruptionType = (NSNumber *)[interruptionDictionary valueForKey:AVAudioSessionInterruptionTypeKey];
if ([interruptionType intValue] == AVAudioSessionInterruptionTypeBegan) {
    NSLog(@"Interruption started");
    if (self.delegate && [self.delegate respondsToSelector:@selector(playerWasPaused)]) {
        [self.delegate playerWasPaused];
    }
} else if ([interruptionType intValue] == AVAudioSessionInterruptionTypeEnded){
    NSLog(@"Interruption ended");
    [player play];
} else {
    NSLog(@"Something else happened");
}

当一个电话开始时,我打印两次"中断开始",但是当它结束时我什么都没得到.我甚至试图检查是否有其他内容发送到通知但仍然没有.有任何想法吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有