Iphone UIImagePickerController-确定视频是否被修剪或编辑
是否可以确定用户使用UIImagePickerController选择的视频是否已修剪 我的应用允许用户互相发送短视频。如果他们在应用程序中录制视频,我会将其副本保存回他们的多媒体资料,以便他们下次可以轻松发送。。我想对修剪过的视频做同样的处理,但不想对未修剪的视频做同样的处理,因为那样只会导致重复 我正在使用以下代码:Iphone UIImagePickerController-确定视频是否被修剪或编辑,iphone,ios,objective-c,uiimagepickercontroller,Iphone,Ios,Objective C,Uiimagepickercontroller,是否可以确定用户使用UIImagePickerController选择的视频是否已修剪 我的应用允许用户互相发送短视频。如果他们在应用程序中录制视频,我会将其副本保存回他们的多媒体资料,以便他们下次可以轻松发送。。我想对修剪过的视频做同样的处理,但不想对未修剪的视频做同样的处理,因为那样只会导致重复 我正在使用以下代码: UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePick
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
[imagePicker setVideoQuality:UIImagePickerControllerQualityType640x480];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[imagePicker setVideoMaximumDuration:6];
imagePicker.allowsEditing = YES;
[self presentModalViewController:imagePicker animated:YES];
我已经尝试使用返回的NSURL来确定视频是否被修剪,但遗憾的是,即使是未修剪的视频也会像这样返回:“trim.DBOnmL.MOV”,并且在查看文档后,我找不到任何有用的属性
--编辑
我已经实现了imagePickerController:didFinishPickingMediaWithInfo:,我只是没有看到返回的任何属性告诉我它是否被编辑过
谢谢 您应该实现
imagePickerController:didFinishPickingMediaWithInfo:
委托方法。信息字典包含一些关于图像/视频是否由用户编辑的有用信息。您应该实现imagePickerController:didFinishPickingMediaWithInfo:
委托方法。信息字典包含一些有用的信息,说明图像/视频是否由用户编辑。我找到了解决方案
imagePickerController:didFinishPickingMediaWithInfo:返回原始视频资源和修剪(即使未修剪)视频资源的url
您可以简单地获取原始视频和经过修剪(即使未修剪)的视频的持续时间,并对它们进行比较,如果不同,则为经过修剪的视频
这将从两个URL获取您的URL:
NSURL *originalVideoAssetUrl = [info objectForKey:UIImagePickerControllerReferenceURL];
NSURL *videoAssetUrl = [info objectForKey:UIImagePickerControllerMediaURL];
。。这可以得到资产的持续时间
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:assetUrl
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
AVURLAssetPreferPreciseDurationAndTimingKey,
nil]];
NSTimeInterval durationInSeconds = 0.0;
if (asset)
durationInSeconds = CMTimeGetSeconds(asset.duration);
我找到了解决办法 imagePickerController:didFinishPickingMediaWithInfo:返回原始视频资源和修剪(即使未修剪)视频资源的url 您可以简单地获取原始视频和经过修剪(即使未修剪)的视频的持续时间,并对它们进行比较,如果不同,则为经过修剪的视频 这将从两个URL获取您的URL:
NSURL *originalVideoAssetUrl = [info objectForKey:UIImagePickerControllerReferenceURL];
NSURL *videoAssetUrl = [info objectForKey:UIImagePickerControllerMediaURL];
。。这可以得到资产的持续时间
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:assetUrl
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
AVURLAssetPreferPreciseDurationAndTimingKey,
nil]];
NSTimeInterval durationInSeconds = 0.0;
if (asset)
durationInSeconds = CMTimeGetSeconds(asset.duration);
您可以将2个视频剪辑加载到NSData中进行比较,并使用“长度”来比较大小。剪辑的视频会更少。您可以将2个视频剪辑加载到NSData中进行比较,并使用“长度”来比较大小。剪辑的视频会更少。对不起,我应该说我已经剪辑过了,但是没有看到返回的任何属性告诉我是否剪辑/编辑了视频。我已经更新了我的问题对不起,我应该说我已经更新了,但是没有看到返回的任何属性让我知道视频是否被剪辑/编辑过。我已经更新了我的问题,这行不通。所选视频通常会有不同的大小,因为即使用户不编辑它,它也会被压缩。谢谢你的建议,但我找到了一个可行的解决方案(对我来说)。我已经把它写进了一个答案这行不通。所选视频通常会有不同的大小,因为即使用户不编辑它,它也会被压缩。谢谢你的建议,但我找到了一个可行的解决方案(对我来说)。我已经把它写进了一个答案