Dar*_*ren 9 video camera uiimagepickercontroller ios
我正在使用它UIImagePickerController让用户选择照片或视频.我面临的问题是,我使用自己的图像编辑器来拍照,所以想要allowsEditing=NO照片,但视频必须是一定的长度,所以我想要allowsEditing=YES视频.
videoMaximumDuration录制视频时,图像选择器的设置工作正常,但如果从相机胶卷中选择,则只会通知用户视频过长(如果allowsEditing已启用).
到目前为止,allowsEditing通过收听ImageControlModeChanged通知,我可以在使用相机时成功更改属性.然后我可以使用以下方法更改属性:
- (void)imageCaptured:(NSNotification *)notification
{
if (imagePicker.cameraCaptureMode == UIImagePickerControllerCameraCaptureModeVideo) {
imagePicker.allowsEditing = YES;
} else {
imagePicker.allowsEditing = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,从相机胶卷中选择时,这不起作用.我已经监视了通知,但allowsEditing根据选择的项目,无法看到更改属性有用的通知.
这甚至可能吗?
谢谢
为什么不创建 2 甚至 4UIImagePickerController秒而不是乱搞通知呢?
- (void) useCamera
{
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage,
nil];
imagePicker.allowsEditing = NO;
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
- (void) useCameraRoll
{
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil];
imagePicker.allowsEditing = NO;
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
- (void)videoRoll
{
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage,
nil];
imagePicker.allowsEditing = YES;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
- (void)vidCam
{
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage,
nil];
imagePicker.allowsEditing = NO;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在更好地理解这个问题之后,我认为这是不可能的。您可以使用一些通知,但这些通知没有在任何地方记录或在 iOS7 上运行。如果确实如此,我能想到的最佳解决方案是使用第三方,例如 github.com/andrei200287/SAVideoRangeSlider 以及allowsEditing = NO所有内容。
| 归档时间: |
|
| 查看次数: |
1963 次 |
| 最近记录: |