Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS多个AVPlayer对象导致音频/视频同步丢失_Iphone_Ipad_Sync_Avplayer - Fatal编程技术网

Iphone iOS多个AVPlayer对象导致音频/视频同步丢失

Iphone iOS多个AVPlayer对象导致音频/视频同步丢失,iphone,ipad,sync,avplayer,Iphone,Ipad,Sync,Avplayer,我一直在尝试在我的应用程序中使用两个不同的AVQueuePlayer对象。第一个播放器播放通过网络传输的一系列视频短片。第二个对象仅播放一个视频,但其长度要长得多。它也是流式传输的。我已验证所有剪辑是否具有正确的音频/视频同步 我注意到,如果我在事先创建了另一个AVPlayer对象之后创建了一个对象,则第二个播放器中的音频/视频同步将丢失。音频在大约800毫秒到1500毫秒之间播放太早了 我尝试了很多方法,包括在清理第一个播放器和分配第二个播放器之间增加延迟,删除对AudioSessioncod

我一直在尝试在我的应用程序中使用两个不同的
AVQueuePlayer
对象。第一个播放器播放通过网络传输的一系列视频短片。第二个对象仅播放一个视频,但其长度要长得多。它也是流式传输的。我已验证所有剪辑是否具有正确的音频/视频同步

我注意到,如果我在事先创建了另一个
AVPlayer
对象之后创建了一个对象,则第二个播放器中的音频/视频同步将丢失。音频在大约800毫秒到1500毫秒之间播放太早了

我尝试了很多方法,包括在清理第一个播放器和分配第二个播放器之间增加延迟,删除对
AudioSession
code的所有调用等。这些似乎都没有帮助。偶尔音频会同步,但实际上只有30次中的1次

还有其他人见过同样的行为吗?有人知道如何解决这个问题吗


感谢所有能帮忙的人

我自己也面临同样的问题。我在AVPlayerLayer文档中发现了一些信息:

在播放过程中,AVPlayer可能会 补偿之间的时间漂移 它的视觉输出和听觉输出 输出到一个或多个 独立时钟音频输出 通过调整设备的运行时间 关联的播放器层。影响 这些调整中的任何一项通常都非常重要 小的但是,希望 完全不受这些影响 调整可能需要进行其他调整 时间安排很重要的图层 到的独立计时子树中 它们的层树

您可以创建任意数量的 使用相同AVPlayer的播放器层 对象只有最近创建的 玩家层将实际显示 屏幕上的视频内容


不幸的是,我还没有破译成实际的代码,但我想它可能会帮助你指出正确的方向。如果您确实提出了解决方案,请将其发布在此处,我也会这样做。

在进行更多测试后,如果我在调用第二个播放器之前先删除第一个播放器,则a/V同步似乎很好。[玩家暂停];[玩家释放];玩家=零;[播放者2播放];但你好像说你已经做对了?我实际上发现这是因为第一个玩家没有被正确释放。系统仍然保留着对玩家的引用,并且没有被删除。在尝试取消分配之前删除任何时间观察者和/或计时器是非常重要的。根据我的测试,这个问题似乎发生在像3GS(带os4)这样的旧设备上,而不是在iphone4上。多个AVPlayer对象在iphone4上工作正常。我还没有在iPad1(使用os4)上测试它。