防止无音频 AVPlayer 暂停背景音频

Preventing no-audio AVPlayer from pausing background audio

我了解基于 AVAudioSession 类别的 AVPlayer 将在开始播放时暂停其他应用程序当前正在播放的背景音频。我想知道这是否是预期的行为,而不管正在播放的 item/content 类型如何?

我问的是在我的情况下显示没有声音的视频。视频文件不包含音轨。 AVPlayer 本身也设置为静音。对我来说有点奇怪,即使我不产生音频,我仍然必须更改为 AVAudioSession 类别。所以我想知道这是否是设计使然,或者是否有我想念的东西。例如,我可以设置没有音频会话的 AVPlayer,这样它就知道不必担心音频或类似问题。

没有。只需将音频类别设置为 "Ambient",这样它就不会踩到任何其他音频:

AVAudioSession *session = [AVAudioSession sharedInstance];
if (session) {
    NSError *setCategoryError = nil;
    BOOL success = [session setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];
    if (success) {
        NSError *activationError = nil;
        [session setActive:YES error:&activationError];
    } else {
        NSLog(@"Failed to set music category to ambient. May interrupt other audio.");
    }
}