2012-04-19 12 views
11

का उपयोग कर वीडियो का पहला फ्रेम मैं AVFoundation में कक्षाओं का उपयोग करके वीडियो का पहला फ्रेम प्राप्त करने का प्रयास कर रहा हूं। लेकिन ऐसा लगता है कि यह बिल्कुल एक छवि नहीं मिल रहा है।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]; 

वीडियो पथ का मूल्य /var/mobile/Applications/02F42CBF-D8BD-4155-85F2-8CF1E55B5023/Documents/videos/1334300431637030.mp4 जो निश्चित रूप से एक वीडियो है है की तरह लग रहा है क्योंकि मैं MPMoviePlayerViewController के साथ खेल सकते हैं। मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं लेकिन कोई सुझाव उपयोगी होगा।

धन्यवाद।

उत्तर

18

मैंने इसे हल किया। [NSURL URLWithString:videoPath] के बजाय स्पष्ट रूप से [NSURL fileURLWithPath:videoPath] का उपयोग करके सभी अंतर आता है।

7

मैंने null0pointer समाधान का उपयोग किया लेकिन कुछ वीडियो में मैंने पहले फ्रेम को घुमाया। इस समस्या को हल करने के लिए मैंने AVAssetImageGenerator की लागू PreferredTrackTransform प्रॉपर्टी पर 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]; 
संबंधित मुद्दे