Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIImagePickerController-确定视频是否被修剪或编辑_Iphone_Ios_Objective C_Uiimagepickercontroller - Fatal编程技术网

Iphone UIImagePickerController-确定视频是否被修剪或编辑

Iphone UIImagePickerController-确定视频是否被修剪或编辑,iphone,ios,objective-c,uiimagepickercontroller,Iphone,Ios,Objective C,Uiimagepickercontroller,是否可以确定用户使用UIImagePickerController选择的视频是否已修剪 我的应用允许用户互相发送短视频。如果他们在应用程序中录制视频,我会将其副本保存回他们的多媒体资料,以便他们下次可以轻松发送。。我想对修剪过的视频做同样的处理,但不想对未修剪的视频做同样的处理,因为那样只会导致重复 我正在使用以下代码: UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePick

是否可以确定用户使用UIImagePickerController选择的视频是否已修剪

我的应用允许用户互相发送短视频。如果他们在应用程序中录制视频,我会将其副本保存回他们的多媒体资料,以便他们下次可以轻松发送。。我想对修剪过的视频做同样的处理,但不想对未修剪的视频做同样的处理,因为那样只会导致重复

我正在使用以下代码:

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中进行比较,并使用“长度”来比较大小。剪辑的视频会更少。

对不起,我应该说我已经剪辑过了,但是没有看到返回的任何属性告诉我是否剪辑/编辑了视频。我已经更新了我的问题对不起,我应该说我已经更新了,但是没有看到返回的任何属性让我知道视频是否被剪辑/编辑过。我已经更新了我的问题,这行不通。所选视频通常会有不同的大小,因为即使用户不编辑它,它也会被压缩。谢谢你的建议,但我找到了一个可行的解决方案(对我来说)。我已经把它写进了一个答案这行不通。所选视频通常会有不同的大小,因为即使用户不编辑它,它也会被压缩。谢谢你的建议,但我找到了一个可行的解决方案(对我来说)。我已经把它写进了一个答案