2

所以我正在开发一个使用 AVPlayer 和 AVPlayerLayer 播放实时视频和音频流的应用程序。当用户离开应用程序或锁定设备时,我想允许音频在后台播放,到目前为止它工作得很好。

我在 AppDelegate.m 中的代码基本上如下:

-(void)applicationDidEnterBackground:(UIApplication *)application {
    [playerView setPlayer:nil];
}
-(void)applicationDidBecomeActive:(UIApplication *)application {
    [playerView setPlayer:streamPlayer];
}

其中 playerView 是我的 AVPlayerLayer,streamPlayer 是我的 AVPlayer。

我遇到的问题是,当应用程序再次激活时,音频会跳过,流需要大约一秒钟才能稳定并再次正常播放。我想要实现的是让音频在后台播放,然后当应用程序再次激活时,音频不会中断,视频再次激活并同步到音频。

在 applicationDidBecomeActive 我尝试创建另一个连接到同一流的 AVPlayer 实例,但音频静音,然后将该播放器设置为 playerView 的播放器,这允许原始 AVPlayer 的音频不会被中断,但随后视频和音频不同步,因为它们来自不同的 AVPlayer,所以这不起作用。

有没有人有任何建议如何解决这个问题?

4

0 回答 0