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:如何“播放”图像而不是视频?的主要内容,如果未能解决你的问题,请参考以下文章

avplayer 和 wkwebview 视频播放

如何在 Swift 3 中检查 AV 播放器何时达到特殊秒数

想要在 AVPlayer 中播放视频时逐帧提取视频中的所有图像

ios 的 UIImageView 中显示之前的视频(AVPlayer)而不是 Image

防止 AVPlayer 取消背景音频

如何接收和使用 AVPlayer 的语音命令? (tvOS,迅速)