7

我正在尝试使用 MPMoviePlayerController 从选定的视频文件中提取多个图像。下面是我写的代码。

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];

这是通知的处理程序

  -(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];
     }
  }

但是我收到以下错误消息:

  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)}

有人知道 OSStatus Error -12433 的描述吗?我尝试搜索有关 OSStatus 错误代码的文档,但没有成功。

任何帮助将不胜感激。

4

3 回答 3

3

我不得不将时间添加为浮点数,所以:

NSNumber *time1 = [NSNumber numberWithFloat:1.f];
于 2013-07-26T00:25:46.893 回答
0

我使用库 iFrameExtractor https://github.com/lajos/iFrameExtractor

希望这有助于祝你好运

于 2013-02-13T05:02:45.690 回答
0

我得到了完全相同的错误OSStatus -12433,我正在使用AVAssetImageGenerator

原来我的问题是由我请求缩略图的时间引起的。以下是有效时间和出现错误的时间的示例。

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

我会尝试调整你的时间,看看是否有另一个可行的选择。

于 2013-03-13T17:52:45.687 回答