标签: uiimagepickercontroller

iPhone视频录制:"cameraCaptureMode 1不可用,因为mediaTypes确实包含public.movi​​e"

我尝试录制视频.我收到的消息来自设备上的以下代码:

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.allowsEditing = YES;
    imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
    imagePickerController.delegate = self;
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我认为录制视频应该很容易.当我启动手机的"相机"应用程序时,我可以选择视频和图片.它不应该也适用于我的应用程序吗?

提前10倍,Danail

iphone uiimagepickercontroller

26
推荐指数
4
解决办法
2万
查看次数

iPad iOS7 - UIPopoverController中的UIImagePickerController具有错误的预览图像

我在UIPopoverController中使用UIImagePickerController,它与iOS6完美配合.使用iOS 7时,显示捕获图像的"预览"图像会旋转,但如果我拍照,则会正确保存.

这就是我选择的方式:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
                              (NSString *) kUTTypeImage,
                              nil];
imagePicker.allowsEditing = NO;
Run Code Online (Sandbox Code Playgroud)

并将其添加到弹出控制器:

self.imagePickerPopOver = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
    [self.imagePickerPopOver presentPopoverFromRect:CGRectMake(aPosViewA.x, cameraButton_y, 100.0, 30.0) inView:self.detailViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)

这些是UIScrollView上按钮位置的计算,以显示正确位置的弹出窗口:

presentPopoverFromRect:CGRectMake(aPosViewA.x, cameraButton_y, 100.0, 30.0)
Run Code Online (Sandbox Code Playgroud)

我不认为问题就在那里,因为我尝试了几种组合.

我还尝试在全屏模式下捕获图像,但应用程序只允许使用横向模式.如果以纵向模式拍摄图像并且取消模态视图,则应用程序也将保持纵向模式.如果模态视图被解除,我找不到阻止UIImagePickerController切换到纵向模式或强制应用程序回到横向模式的方法.

UPDATE

我从这里得到了答案,又向前迈进了一步.

我在创建选择器之后和显示弹出窗口之前转换视图:

switch ([UIApplication sharedApplication].statusBarOrientation) {
        case UIInterfaceOrientationLandscapeLeft:
            self.imagePicker.view.transform = CGAffineTransformMakeRotation(M_PI/2);
            break;
        case UIInterfaceOrientationLandscapeRight:
            self.imagePicker.view.transform = CGAffineTransformMakeRotation(-M_PI/2);
            break;
        default:
            break;
    }
Run Code Online (Sandbox Code Playgroud)

只要我不转动iPad,它就能正常工作.为此,我正在注册方向更改事件:

[[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)  name:UIDeviceOrientationDidChangeNotification  object:nil];
Run Code Online (Sandbox Code Playgroud)

并更改选择器视图:

- …
Run Code Online (Sandbox Code Playgroud)

uiimagepickercontroller uipopovercontroller uiinterfaceorientation ios ios7

26
推荐指数
1
解决办法
9834
查看次数

iOS 7 UIImagePicker预览黑屏

当我尝试从我的代码加载相机时,相机预览为黑色.如果我等待10-20秒,它将显示真实的相机预览.我发现了几个问题,其中一些问题表明在后台运行其他代码应该是这个问题的原因.但是我没有在后台运行任何代码.我该怎么解决这个问题?

这是我运行相机的代码

UIImagePickerController *photoPicker = [[UIImagePickerController alloc] init];

photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:photoPicker animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

objective-c uiimagepickercontroller ios

26
推荐指数
2
解决办法
7182
查看次数

你如何着色/自定义UIImagePickerController的导航栏?

为UIImagePickerController的导航栏着色的正确方法是什么?
我只是试图看到背景颜色,但我得到一种褪色的颜色,如下图所示; 好像有些观点阻碍了它.

let picker = UIImagePickerController()
picker.sourceType = type
picker.mediaTypes = [kUTTypeImage]
picker.delegate = self
picker.navigationBar.backgroundColor = UIColor.redColor()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它似乎有一些视图模糊redColor():

(lldb) po picker.navigationBar.subviews
2 values
 {
  [0] = 0x00007fe7bb52a890
  [1] = 0x00007fe7bb52b670
}
Run Code Online (Sandbox Code Playgroud)

为导航栏创建纯色的正确方法是什么?

uiimagepickercontroller swift

26
推荐指数
5
解决办法
1万
查看次数

如何更改UIImagePickerController裁剪框架

当打开使用UIImagePickerController并设置allowsImageEditing = YES时; 有一个320x320的默认裁剪框.在我的情况下,我想将裁剪框架设置为320x240用于横向图像,240x320用于纵向图像.但是,我还没有找到一种方法来更改编辑/裁剪照片时使用的320x320帧.你有没有找到办法做到这一点?

谢谢!

iphone cocoa-touch crop uiimagepickercontroller

25
推荐指数
1
解决办法
3万
查看次数

UIImagePickerController错误

我认为我在最新的iOS 7中发现了一个错误,它运行的应用程序将Base SDK设置为iOS 6.1(可能甚至更低版本,还没有测试过)

我的照片库中有这张图片:http://i.imgur.com/7KUIGLt.jpg

我通过以下方式呈现UIImagePickerController:

UIImagePickerController *vc = [[UIImagePickerController alloc] init];
vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
vc.delegate = self;
vc.allowsEditing = YES;
[self presentViewController:vc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

我将所选图像保存到我的桌面(我在模拟器上运行它,但这也适用于设备)

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    UIImage* outputImage = [info objectForKey:UIImagePickerControllerEditedImage];
    if (outputImage == nil) {
        outputImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    }
    NSData *d = UIImagePNGRepresentation(outputImage);
    [d writeToFile:@"/Users/Admin/Desktop/test.png" atomically:YES];
    [self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

这是结果图像: 在此输入图像描述

注意右边的大黑条.是什么导致了这个?

要重现这一点,您需要:

  • IOS 7
  • 基本SDK设置为6.1的应用程序(可能甚至更低的SDK,我还没有尝试过)
  • iPhone 5/5c/5s
  • 仅适用于使用iPhone 5/5c/5s相机拍摄的照片(您可以使用我上面链接的原始图像进行测试)

注意:为了清楚起见,黑条是实际图像的一部分.你看到的图像没有UIImageView的截图,但是实际的图像保存到磁盘并在这里上传...

cocoa-touch objective-c uiimagepickercontroller ios ios7

25
推荐指数
1
解决办法
7010
查看次数

24
推荐指数
1
解决办法
1万
查看次数

如何在iphone中获取通过照片库选取的图像名称?

我正在从iphone应用程序中的照片库中选择一个图像.我将如何检索实际图像名称.

在.h班

UIImageView * imageView;

UIButton * choosePhotoBtn;
Run Code Online (Sandbox Code Playgroud)

在.m级

-(IBAction) getPhoto:(id) sender 
{
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    if((UIButton *) sender == choosePhotoBtn)
    {
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }
    else 
    { 
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }
    [self presentModalViewController:picker animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
    [picker dismissModalViewControllerAnimated:YES];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}
Run Code Online (Sandbox Code Playgroud)

我如何获得图像的实际名称?

我是iphone的新手.请帮我.

提前致谢.

iphone objective-c uiimagepickercontroller ios

24
推荐指数
4
解决办法
5万
查看次数

我应该为 UTTypeImage 导入什么库,它是 iOS 15 中 kUTTypeImage 的替代品?

在iOS 15之前,我使用 UIImagePickerController 来捕获图像和视频,并从 中获取了 mediaType [UIImagePickerController.InfoKey : Any],然后我使用了kUTTypeImage(在MobileCoreServices库中)来识别mediaType。

\n

然而,当谈到 iOS 15 时,Xcode 抱怨说,kUTTypeImage was deprecated in iOS 15.0. Use UTTypeImage instead.所以,我替换kUTTypeImageUTTypeImage,但 Xcode 不知道。

\n

尝试搜索一些信息,但没有得到任何线索。我想我应该导入正确的库,但它是什么?

\n

这是部分代码\xef\xbc\x9a

\n
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {\n        guard let mediaType = info[.mediaType] as? String else { return }\n        switch mediaType {\n        case String(kUTTypeImage):\n        // blabla\n        case String(kUTTypeMovie):\n        // blabla\n
Run Code Online (Sandbox Code Playgroud)\n

以下是一些屏幕截图:\n在此输入图像描述

\n

在此输入图像描述

\n

uiimagepickercontroller ios swift

24
推荐指数
1
解决办法
8384
查看次数

UIImagePickerController从图书馆接收的视频缩略图

我正在尝试使用UIImagePickerController获取从库中拾取的视频的缩略图.

这是我的代码.如果我使用相机录制视频,我可以获得视频的缩略图.但是如果我从图书馆中获取视频,我就无法获得缩略图.谁知道为什么?

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

    if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
    {
        NSURL *mediaUrl = [info objectForKey:UIImagePickerControllerMediaURL];

        MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaUrl];
        moviePlayer.shouldAutoplay = NO;
        UIImage *thumbnail = [[moviePlayer thumbnailImageAtTime:0.0 timeOption:MPMovieTimeOptionNearestKeyFrame] retain];
        [imageView setImage:thumbnail];  //imageView is a UIImageView

        [moviePlayer release];
        [thumbnail release];
        [self dismissModalViewControllerAnimated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

video thumbnails uiimagepickercontroller

23
推荐指数
4
解决办法
1万
查看次数