L'obtention d'une vignette d'un *.vidéo mov IOS
Je veux obtenir une vignette de vidéo (*.mov) qui prises avec l'iPhone/iPAD. Je suis en train d'utiliser AVFoundation bibliothèque pour cela et pour obtenir cette erreur:
couldn't generate thumbnail, error:Error Domain=AVFoundationErrorDomain Code=-11822 "Cannot Open" UserInfo=0x15d90a30 {NSLocalizedDescription=Cannot Open, NSLocalizedFailureReason=This media format is not supported.}
Code:
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir=[paths objectAtIndex:0];
NSString *videoPath=[documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"videos/%@.mov",videoName]];
AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:videoPath options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform=TRUE;
CMTime thumbTime = CMTimeMakeWithSeconds(0,30);
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
if (result != AVAssetImageGeneratorSucceeded) {
NSLog(@"couldn't generate thumbnail, error:%@", error);
}
self.img.image=[UIImage imageWithCGImage:im];
};
CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];
J'ai enregistré des vidéos avec mon application et que vous voulez afficher une vignette d'entre eux.
OriginalL'auteur onivi | 2013-10-23
Vous devez vous connecter pour publier un commentaire.
Ici, il est... (Ramassé à partir de ce lien- Obtenir la vidéo instantané pour les vignettes)
Merci @Ashok ça a bien fonctionné avec peu de modifications. Sauvé mon temps. Donner votre réponse.
Ce n'est pas de travail
Regarde @jr.de la racine.cs de répondre, en dessous de celui-ci. N'oubliez pas de libérer imgRef.
grand,est-il possible de donner CMTimeMake pause de temps de lecture de la vidéo
OriginalL'auteur Ashok
Je n'ai pas assez de réputation pour commenter, mais l'exemple ci-dessus est manquant
CGImageRelease(imageRef)
...La finale de la methode devrait ressembler à:
M'a fallu du temps pour réaliser... Alors peut-être que ça aidera quelqu'un.
OriginalL'auteur jr.root.cs
Vous pouvez générer à swift de deux façons 1. AVAssetImageGenerator 2. MPMoviePlayerController
fatal error: unexpectedly found nil while unwrapping an Optional value
parce que l'img n'est pas n'importe quelle valeurDans la ligne à laquelle vous obtenez une erreur ??
S'il vous plaît laissez-moi savoir dont la valeur est nulle, parce que ce qui se passe grâce au passage de valeur nil.
Non, peut-b actifs(assetImgGenerate) néant
<AVURLAsset: 0x7faf43bb1ed0, URL = /Users/icanstudioz/Library/Developer/CoreSimulator/Devices/C96A5D25-DE92-4E5B-8134-ED7B2823EC2E/data/Containers/Data/ App ... 5194.MOV> <AVAssetImageGenerator: 0x7faf43b4e550>
OriginalL'auteur Dharmbir Singh
Vous avez besoin de vérifier si chaque segment de la vidéo est vide dans la piste vidéo.
OriginalL'auteur Chaoji Fan