nul*_*ter 17 objective-c avfoundation ios
我正在尝试使用AVFoundation中的类来获取视频的第一帧.但它似乎根本没有得到一个图像.
我的代码目前看起来像这样
AVURLAsset* asset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:videoPath] options:nil];
AVAssetImageGenerator* imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
UIImage* image = [UIImage imageWithCGImage:[imageGenerator copyCGImageAtTime:CMTimeMake(0, 1) actualTime:nil error:nil]];
[videoFrame setImage:image];
Run Code Online (Sandbox Code Playgroud)
视频路径的价值/var/mobile/Applications/02F42CBF-D8BD-4155-85F2-8CF1E55B5023/Documents/videos/1334300431637030.mp4
绝对是一个视频,因为我可以播放它MPMoviePlayerViewController
.我不确定我做错了什么,但任何建议都会有所帮助.
谢谢.
Jav*_*aña 13
我使用了null0pointer解决方案,但在一些视频中,我收到了第一帧旋转.要解决此问题,我将AVAssetImageGenerator的applyPreferredTrackTransform属性设置为TRUE.这段代码看起来像这样:
AVURLAsset* asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
AVAssetImageGenerator* imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
[imageGenerator setAppliesPreferredTrackTransform:TRUE];
UIImage* image = [UIImage imageWithCGImage:[imageGenerator copyCGImageAtTime:CMTimeMake(0, 1) actualTime:nil error:nil]];
[self.imageView setImage:image];
Run Code Online (Sandbox Code Playgroud)
在Swift 4.0中执行此操作:
// Assumes you have a local `fileURL`
var avAsset = AVURLAsset(url: fileURL, options: nil)
var imageGenerator = AVAssetImageGenerator(asset: avAsset)
imageGenerator.appliesPreferredTrackTransform = true
var thumbnail: UIImage?
do {
thumbnail = try UIImage(cgImage: imageGenerator.copyCGImage(at: CMTime(seconds: 0, preferredTimescale: 1), actualTime: nil))
} catch let e as NSError {
print("Error: \(e.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10086 次 |
最近记录: |