1

我制作了一个示例应用程序,通过从相机胶卷中获取视频来修剪视频。编写代码如下:

-(IBAction)cutVideo
{
 NSString *path=[NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];
 path=[path stringByAppendingPathComponent:@"new.mov"];
 [self splitVideo:path];
}

- (void)splitVideo:(NSString *)outputURL
{
 @try
 {
  NSURL *fileURL=[[NSURL alloc] init];
  fileURL=[NSURL fileURLWithPath:outputURL];
  fileURL=[NSURL URLWithString:outputURL];
//  NSString *videoBundleURL = [[NSBundle mainBundle] pathForResource:@"samp" ofType:@"mov"];
  AVAsset *asset = [[AVURLAsset alloc] initWithURL:fileURL options:nil];
  NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:asset];

  if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality])
  {
   [self trimVideo:outputURL assetObject:asset];
  }
//  videoBundleURL = nil;
  asset = nil;
  compatiblePresets = nil;
 }
 @catch (NSException * e)
 {
  NSLog(@"Exception Name:%@ Reason:%@",[e name],[e reason]);
 }
}


- (void)trimVideo:(NSString *)outputURL assetObject:(AVAsset *)asset
{
 @try
 {
  AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]initWithAsset:asset presetName:AVAssetExportPresetLowQuality];
  exportSession.outputURL = [NSURL fileURLWithPath:outputURL];
  exportSession.outputFileType = AVFileTypeQuickTimeMovie;

  CMTime start = CMTimeMakeWithSeconds(startTime, 1);
  CMTime duration = CMTimeMakeWithSeconds((endTime - startTime), 1);
  CMTimeRange range = CMTimeRangeMake(start, duration);

  exportSession.timeRange = range;
  exportSession.outputFileType = AVFileTypeQuickTimeMovie;


  if ([[NSFileManager defaultManager] fileExistsAtPath:outputURL])
  {
   [[NSFileManager defaultManager] removeItemAtPath:outputURL error:nil];
  }

  [exportSession exportAsynchronouslyWithCompletionHandler: ^(void) {
   NSLog(@"Export Status %d %@", exportSession.status, [exportSession.error description]);
  }];

  exportSession = nil;
 }
 @catch (NSException * e)
 {
  NSLog(@"Exception Name:%@ Reason:%@",[e name],[e reason]);
 }
}

一切正常,但导出文件中出现错误..错误如下

2012-12-12 13:27:27.896 RecordVideo[1472:907] Export Status 4 Error 
Domain=NSURLErrorDomain Code=-1 "unknown error" UserInfo=0x1e577ad0 
{NSErrorFailingURLStringKey=/var/mobile/Applications/A38CC8B9-A8CB-4A65-8308-
24A9BEB27626/Library/Documentation/new.mov, 
NSErrorFailingURLKey=/var/mobile/Applications/A38CC8B9-A8CB-4A65-8308-
24A9BEB27626/Library/Documentation/new.mov, NSLocalizedDescription=unknown error, 
NSUnderlyingError=0x1e537da0 "The operation couldn’t be completed. (OSStatus error 
 -12935.)", NSURL=/var/mobile/Applications/A38CC8B9-A8CB-4A65-8308-
24A9BEB27626/Library/Documentation/new.mov}

任何帮助将不胜感激,谢谢

4

0 回答 0