gpt4 book ai didi

ios - AVPlayer 和 Video 的屏幕截图

转载 作者:IT老高 更新时间:2023-10-28 11:37:51 48 4
gpt4 key购买 nike

我正在尝试在更大的 View 中截取 AVPlayer 的屏幕截图。我只想构建一个测试框架,所以私有(private) APIs 或任何方法都可以,因为发布到 AppStore 时不会包含该框架。

我尝试过使用

  • UIGetScreenImage() : 在模拟器上运行良好,但在设备上运行良好
  • snapshotviewafterscreenupdates:它显示了 View ,但我无法从中创建 UIImage
  • drawViewInHierarchyrenderInContext 不适用于 AVPlayer
  • 我不想使用 AVAssetGenerator 从视频中获取图像,很难得到一个好的坐标或视频播放器作为其他 View 的 subview

最佳答案

我知道您不想使用 AVAssetImageGenerator,但我也对此进行了广泛研究,我相信目前唯一的解决方案是使用 AVAssetImageGenerator。获得正确的坐标并不像您说的那么难,因为您应该能够获得玩家的当前时间。在我的应用程序中,以下代码完美运行:

-(UIImage *)getAVPlayerScreenshot 
{
AVURLAsset *asset = (AVURLAsset *)self.playerItem.asset;
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
imageGenerator.requestedTimeToleranceAfter = kCMTimeZero;
imageGenerator.requestedTimeToleranceBefore = kCMTimeZero;
CGImageRef thumb = [imageGenerator copyCGImageAtTime:self.playerItem.currentTime
actualTime:NULL
error:NULL];
UIImage *videoImage = [UIImage imageWithCGImage:thumb];
CGImageRelease(thumb);
return videoImage;
}

关于ios - AVPlayer 和 Video 的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286252/

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