2013-01-12 6 views
7

Próbuję wyodrębnić wiele obrazów z wybranego pliku wideo za pomocą MPMoviePlayerController. Poniżej znajduje się kod, który napisałem.Nie można uzyskać wielu obrazów z wideo za pomocą MPMoviePlayerController. OSStatus -12433

movie = [[MPMoviePlayerController alloc] initWithContentURL:[info objectForKey:UIImagePickerControllerMediaURL]]; 

NSNumber *time1 = [NSNumber numberWithInt:1]; 
NSNumber *time2 = [NSNumber numberWithInt:3]; 
NSNumber *time3 = [NSNumber numberWithInt:5]; 

NSArray *times = [NSArray arrayWithObjects:time1,time2,time3,nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleThumbnailImageRequestFinishNotification:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:movie]; 

[movie requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionExact]; 

Oto obsługi dla powiadomienia

-(void)handleThumbnailImageRequestFinishNotification:(NSNotification*)note 
    { 
    NSDictionary *userinfo = [note userInfo]; 
    NSError* value = [userinfo objectForKey:MPMoviePlayerThumbnailErrorKey]; 

    if (value!=nil) 
    { 
     NSLog(@"Error: %@", [value debugDescription]); 
    } 
    else 
    { 
     _imageView.image = [userinfo valueForKey:MPMoviePlayerThumbnailImageKey]; 
    } 
    } 

Jednak pojawia się następujący komunikat o błędzie:

Error: Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo=0x1d8a63d0 {NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x1d8b7b50 "The operation couldn’t be completed. (OSStatus error -12433.)", NSLocalizedFailureReason=An unknown error occurred (-12433)} 

ktoś zna opis OSStatus błąd -12433? Próbowałem wyszukać dokumentację dotyczącą kodów błędów OSStatus, ale zakończyło się to niepowodzeniem.

Każda pomoc zostanie bardzo doceniona.

Odpowiedz

0

byłem coraz dokładnie ten sam błąd OSStatus -12433 i używam AVAssetImageGenerator

Okazuje się, że mój problem został spowodowany do czasu, kiedy prosiłem o miniaturkę. Poniżej znajduje się przykład czasu, który działa i czas, który dał błąd.

CMTime timeGivesError = CMTimeMakeWithSeconds(0.0, 0.0); 
CMTime timeWorks = CMTimeMakeWithSeconds(0.0, 1.0); 
CGImageRef image = [gen copyCGImageAtTime:timeWorks actualTime:&actualTime error:&error]; 

Chciałbym dostosować czas i sprawdzić, czy istnieje inna opcja, która zadziała.

3

musiałem dodać razy pływa tak:

NSNumber *time1 = [NSNumber numberWithFloat:1.f]; 
+1

To sprawiło, że praca dla mnie. [self.videoPlayer requestThumbnailImagesAtTimes: @ [@ (1.f)] timeOption: MPMovieTimeOptionNearestKeyFrame]; – user1270061

Powiązane problemy