Ich habe eine iOS-App, die mit einem AVPlayer einen Hintergrundsoundtrack spielt und andere Soundclips mit einem zweiten AVPlayer "on top" abspielt. (Die Soundclips werden aus dem Internet gestreamt, daher die Voraussetzung für AVPlayer.) Das Problem ist, dass der zweite AVPlayer beim Abspielen des zweiten AVPlayers den Hintergrund-AVPlayer für einen Bruchteil einer Sekunde stoppt, ähnlich wie in diesem Kommentar beschrieben:Audiofehler bei der gleichzeitigen Wiedergabe von zwei AVPlayer-Audiodateien
Play multiple Audio Files with AVPlayer
ich bereite die Audio-Clips mit dieser Methode:
- (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]];
}
... und dann [player play];
Aufruf, wenn ich w ant, um jeden Ton zu hören.
Gibt es etwas, das ich zu tun, wenn ich die Audio-Sitzung oder jede Instanz des AVPlayer eingerichtet, so dass die Töne ohne den Glitch mischen?
Das kann nicht sein. Ich habe einige Experimente mit unverpackten PCM-Dateien durchgeführt, und das Problem besteht weiterhin. Davon abgesehen scheint es etwas mit der Anwendung von AVMutableAudioMix zu tun zu haben. Wann immer es angewendet wird, passiert das Bommel. –