【发布时间】:2012-06-25 05:18:59
【问题描述】:
我有一个 iOS 应用程序,它使用一个 AVPlayer 播放背景音轨,并使用第二个 AVPlayer 播放其他声音片段。 (声音片段是从 Internet 流式传输的,因此需要 AVPlayer。)问题是,当第二个 AVPlayer 开始播放时,它会导致背景 AVPlayer 停止几分之一秒,类似于此评论中描述的内容:
Play multiple Audio Files with 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 的每个实例时,我需要做些什么,以便声音混合而不会出现故障?
【问题讨论】: