UIImagepickercontrollerのdidFinishPickingMediaWithInfo
のメソッドからinputurl [info objectForKey:UIImagePickerControllerMediaURL]
を取得しています。UIImagepickercontroller:低品質のビデオエラーに変換する
NSURL *inputURL = [NSURL URLWithString:inputurlstring];
私はこのコード
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *videoPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"capturedvideo.MOV"];
NSURL *outputURL = [NSURL fileURLWithPath:videoPath];
からoutputurl与えている私は、私が唯一の大きなファイルを使用する場合、私は次のエラーを取得しています低品質のビデオに
- (void)convertVideoToLowQuailtyWithInputURL:(NSURL*)inputURL
outputURL:(NSURL*)outputURL
handler:(void (^)(AVAssetExportSession*))handler
{
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality];
exportSession.outputURL = outputURL;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^(void)
{
if (exportSession.status == AVAssetExportSessionStatusCompleted)
{
printf("completed\n");
}
else
{
printf("error\n");
NSLog(@"error is %@",exportSession.error);
}
}];
}
を取得するには、次のコードを使用していました。私は小さなサイズのビデオファイルを使用するとき、私は何のエラーも得られなかったので。代わりにのみ、そのreference url
を通して、あなたの動画にアクセスすることができ、この
[info objectForKey:UIImagePickerControllerMediaURL];
使用
NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL];
AVAssetLibrary
の
Error Domain=NSURLErrorDomain Code=-1 "unknown error" UserInfo=0x616d890
{NSErrorFailingURLStringKey=/private/var/mobile/Applications/EE1E6701-EED0-4830-BD1D-7366680713C0/tmp//trim.7mL7VS.MOV, NSErrorFailingURLKey=/private/var/mobile/Applications/EE1E6701-EED0-4830-BD1D-7366680713C0/tmp//trim.7mL7VS.MOV, NSLocalizedDescription=unknown error, NSUnderlyingError=0x2d1460 "The operation couldn’t be completed. (OSStatus error -12935.)", NSURL=/private/var/mobile/Applications/EE1E6701-EED0-4830-BD1D-7366680713C0/tmp//trim.7mL7VS.MOV}
大きなビデオをトリミングしていますか?トリムがプライベートフォルダに格納されているようです。 –
私は低品質に変換しています。ドキュメントディレクトリに保存しています。@AlbertRenshaw – Suresh
変換をスキップして、UIImagePickerControllerのvideoQualityプロパティをUIImagePickerControllerQualityTypeLowに設定してみませんか? –