gpt4 book ai didi

ios - 无缝循环 AVPlayer

转载 作者:可可西里 更新时间:2023-11-01 03:37:42 24 4
gpt4 key购买 nike

已经有some discussion之前关于如何循环播放 AVPlayer 的视频项目,但没有“解决方案”足够无缝以提供视频的无延迟循环 .

我正在开发一个 tvOS 应用程序,它在其中一个 View 的背景中有一个高质量的 10 秒“风景”剪辑,并且只需以“标准”方式重新启动它的 AVPlayer(订阅 NSNotification 来捕捉它)过于神经质以至于不会注意到并且会影响用户体验。

似乎实现真正无缝循环的唯一方法是在较低级别(在 OpenGL 中)手动管理帧...

尽管尽了最大努力阅读这篇文章,并且作为操纵视频管道的新手,我还没有足够接近一个可理解的解决方案。

我知道存在外部库可以更轻松地执行此行为;最值得注意的是 GPUImage .但是,我正在开发的应用程序是针对 tvOS 的,因此很难使用现有的很多第 3 方 iOS 库,包括 GPUImage。我遇到的另一个图书馆是 AVAnimator ,它为轻量级动画视频提供了强大的功能,但不适用于以 .H264 编码的源素材的密集、高质量视频剪辑。

到目前为止我最接近的是Apple自己的AVCustomEdit源代码,然而,这主要涉及“过渡”的静态生成,尽管它是无缝的,但对我来说太复杂了,无法辨别如何使其执行简单的循环功能。

如果有人能分享在较低级别操作 AVPlayer 的经验,即图像处理/缓冲区(或不依赖外部库的 iOS 开发),我将非常感兴趣了解如何开始。

最佳答案

我在流式传输视频时遇到了同样的问题。第一次播放后,第二次加载视频时出现黑屏。我通过提前 5 毫秒搜索视频摆脱了黑屏。它制作了几乎无缝的视频循环。 ( swift 2.1)

// Create player here..
let player = AVPlayer(URL: videoURL)

// Add notification block
NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: player.currentItem, queue: nil)
{ notification in
let t1 = CMTimeMake(5, 100);
player.seekToTime(t1)
player.play()
}

关于ios - 无缝循环 AVPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33285826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com