当 MPMusicPlayerController 在 iOS 上播放时 AVAudioPlayer 不播放声音

AVAudioPlayer doesn't play sound when MPMusicPlayerController is playing on iOS

我有一个使用 AVAudioPlayer 播放各种音乐声音的应用程序。它允许人们 select 从他们的图书馆中选择一首歌曲,并使用 MPMusicPlayerController 播放它。它曾经可以工作,他们可以用它来干扰,但现在当 MPMusicPlayerController 正在播放时,它不会使用 AVAudioPlayer 播放声音。一旦 MPMusicPlayerController 停止,它甚至不会播放声音。我已经在 13.4.1 和 13.6 上测试过了。是什么改变导致它停止工作?我该如何解决它?

它播放的声音是这样的:

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err];
[player prepareToPlay];
[player setVolume: 1.0];
[player play];

对于音乐,它使用 MPMediaPickerController 获取一个 MPMediaItemCollection,然后像这样播放:

- (void) playMusic: (MPMediaItemCollection *) collection {
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
    if (musicPlayer == nil) {
        musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
        [musicPlayer setShuffleMode: MPMusicShuffleModeOff];
        [musicPlayer setRepeatMode: MPMusicRepeatModeNone];
    }
    [musicPlayer setQueueWithItemCollection:collection];
    [musicPlayer play];
}

感觉很蠢。电话被设置为静音模式。由于某些原因,它可以静音播放声音或音乐,但不能同时播放它们。