AVPlayer:如何“播放”图像而不是视频?
Posted
技术标签:
【中文标题】AVPlayer:如何“播放”图像而不是视频?【英文标题】:AVPlayer: how to "play" image instead of video? 【发布时间】:2020-05-29 17:02:58 【问题描述】:我正在开发一个带有视频培训的健康/健身应用程序,在某些情况下,我想显示静态图像而不是视频来进行一些“静态”练习。我想知道是否有任何方法可以通过 AVPlayer “播放”图像而不是视频?
或者,可能是一些“即时”将图像转换为视频的简单方法
这将为我节省大量时间/编码工作,因为一切都是为 AVplayer 制作的,而不是用于显示 uiImage。
提前致谢。
【问题讨论】:
恐怕这是不可能的,所以不要搜索它,而是创建一个UICollectionView
,添加您的图像并在 Timer 的帮助下,然后制作幻灯片......
听起来你可以创建 GIF 并展示它们
【参考方案1】:
如果图像与视频数据分开,则不能。相反,您可以添加一个与 AVPlayer 具有相同帧的 UIImageView 并显示/隐藏您当时需要的任何一个。如果图像是视频中的一帧,您可以尝试在 AVPlayer 上使用 .step 函数,如下所示:
videoPlayer.currentItem?.step(byCount: 1)
如果你使用 UIImageView 并且需要多张照片循环播放,你可以使用内置的
imageView.animationImages = [arrayOfImages]
imageView.animationDuration = TimeInterval(Double(0.5) * Double([arrayOfImages.count])) //seconds * # images
imageView.startAnimating()
【讨论】:
以上是关于AVPlayer:如何“播放”图像而不是视频?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 3 中检查 AV 播放器何时达到特殊秒数
想要在 AVPlayer 中播放视频时逐帧提取视频中的所有图像