Сбой звука при одновременном воспроизведении двух аудиофайлов AVPlayer

У меня есть приложение для iOS, которое воспроизводит фоновую звуковую дорожку с помощью одного AVPlayer и воспроизводит другие звуковые клипы «сверху» с помощью второго AVPlayer. (Звуковые клипы транслируются из Интернета, поэтому требуется наличие AVPlayer. )Проблема в том, что когда второй AVPlayer начинает воспроизведение, фоновый AVPlayer останавливается на долю секунды, как описано в этом комментарии:

Воспроизведение нескольких аудиофайлов с помощью AVPlayer


Я готовлю аудиоклипы этим методом:

- (void)prepareAudio:(NSURL *)assetURL {

asset = [AVURLAsset URLAssetWithURL:assetURL options:nil];
playerItem = [AVPlayerItem playerItemWithAsset:asset];
[player replaceCurrentItemWithPlayerItem:playerItem];


[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];


[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemDidReachEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:[player currentItem]];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemFailedToReachEnd:)
                                             name:AVPlayerItemFailedToPlayToEndTimeNotification
                                           object:[player currentItem]];
 }

...и затем вызывать [player play];, когда я хочу услышать каждый звук.


Есть ли что-то, что мне нужно сделать при настройке аудиосессии или каждого экземпляра AVPlayer, чтобы звуки смешивались без сбоев?

10
задан Community 23 May 2017 в 12:00
поделиться