gpt4 book ai didi

ios - 如何在 View 加载时获取视频的第一帧?

转载 作者:行者123 更新时间:2023-12-01 19:21:56 25 4
gpt4 key购买 nike

一旦查看加载,我想显示一个暂停的视频,它的第一帧就在上面。
为此,我想将视频的第一帧作为 UImage 显示,直到视频播放完毕。

iOS 中是否有通过其 URL 获取本地保存的视频文件的帧?

更新 :请同时考虑我的解决方案和 Stavash 的解决方案,看看哪个适合您。

最佳答案

我找到了一种也可以正常工作的方法!
查看 Apple documentationAVAssetImageGenerator类(class)和AV Foundation Programming Guide .
它有一个名为 copyCGImageAtTime:actualTime:error: 的方法。

使用AVassetAVFoundation FrameWork .
AVasset 有一个类方法 + assetWithURL:它为您提供来自文件 URL 的 Assets 对象。
此方法仅适用于 iOS 5 或更高版本,以防万一
我们可以做一个 respondsToSelector 如果它失败了然后使用
+ (AVURLAsset *)URLAssetWithURL:(NSURL *)URL options:(NSDictionary *)options
AVURLAsset 是 AVAsset 的具体子类,可以在本地视频文件的 URL 可用时使用。

创建 Assets 后,它具有 naturalSize、duration 等属性和许多处理媒体文件的方法。

使用 + assetImageGeneratorWithAsset:AVAssetImageGenerator并将 Assets 传递给它并创建一个 Imagegenerator。

调用上述方法获取CGImageRef然后使用 UIImage 的 imageWithCGImage 获取图像并将其设置为 UIImageView 的 image 属性!

干净利落 !

注意:不要忘记为 CMTime 添加 Core Media 框架,您将通过它来获取相应的 Image-Frame。

还为所有 AVFoundation 类添加 AVFoundation FrameWork。

关于ios - 如何在 View 加载时获取视频的第一帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955184/

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