Pobieranie migawki wideo do miniaturki
Nagrywam wideo z kamery iPhone ' a za pomocą kodu AVCam dostarczonego przez apple.
Po nagraniu wideo jest on zapisywany w bibliotece zdjęć.
Nowy widok jest następnie ładowany, tutaj muszę mieć miniaturę obrazu wideo.
Mam ścieżkę do filmu:
file://localhost/private/var/mobile/Applications/ED45DEFC-ABF9-4A5E-9102-21680CC1448E/tmp/output.mov
Nie wiem, jak sprawić, by pierwsza klatka filmu była użyta jako miniatura.
Każda pomoc będzie bardzo mile widziana i dziękuję za poświęcony czas.
EDIT
Skończyło się na tym, nie jestem pewien, dlaczego zwraca obraz bokiem?
- (UIImage*)loadImage {
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];
NSLog(@"err==%@, imageRef==%@", err, imgRef);
return [[UIImage alloc] initWithCGImage:imgRef];
}
1 answers
To fix ustawienie orientacji miniatury appliesPreferredTrackTransform
na YES
w instancji AVAssetImageGenerator
. Jeśli dodasz własną kompozycję wideo, musisz dołączyć odpowiednią transformację, aby obrócić wideo zgodnie z potrzebami.
generate.appliesPreferredTrackTransform = YES;
Pamiętaj o zwolnieniu uzyskanego odniesienia do obrazu za pomocą CGImageRelease
.
Aby zażądać wielu miniaturek, lepiej zrobić to asynchronicznie za pomocą generateCGImagesAsynchronouslyForTimes:completionHandler:
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-05 01:48:06