iPhone:我的录像机API代码不起作用

时间:2010-11-18 20:50:59

标签: iphone uiimagepickercontroller

我正在尝试为我的iPhone 3.0和iPhone 3.1.2设备实现视频录制功能。我为此创建了一个示例应用程序,并在UIView中保留了一个名为“Start Video”的按钮。然后,在单击“开始视频”按钮时,我会调用以下功能代码。

-(IBAction) StartVideo
{

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

 imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.allowsEditing = YES;

//imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
 imagePickerController.mediaTypes =  [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
    imagePickerController.delegate = self;

 [self presentModalViewController:imagePickerController animated:YES];

 [imagePickerController release];

}

更新:当我检查以下代码段以查找是否支持视频时,它会将我作为视频不支持警报返回,如下所述。我不明白这里有什么问题?

NSArray *media = [UIImagePickerController availableMediaTypesForSourceType:
                      UIImagePickerControllerSourceTypeCamera];
    if([media containsObject:(id)kUTTypeMovie]) 
    {
        imagePickerController.mediaTypes = [NSArray
                                    arrayWithObjects:(id)kUTTypeMovie,nil];
        [self presentModalViewController:imagePickerController animated:YES];

    } else {
        NSLog(@"Video not supported");
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Nothing"
                                                        message:@"Video not supported"
                                                       delegate:self
                                              cancelButtonTitle:nil
                                              otherButtonTitles:@"Ok", nil];        
        [alert show];
        [alert release];
    }

我在3.0 2G和3.1.2 3G上测试了这个代码,但是当我点击“开始视频”并转到设备主屏幕时它崩溃了。我下载了一些名为“录制视频”的第三方免费视频录制应用,它工作得很棒,视频录制和共享文件非常好。 我想知道如何在iPhone 3.0,3.1.2和4.0设备上实现录制视频。 注意:我仅在2G和3G设备上进行测试。

有人可以指导我吗?

谢谢。

更新:

我用iPhone 3GS设备测试了代码(功能:StartVideo),它按预期工作。我不知道为什么它会在2G和3G手机上说“不支持视频”。

1 个答案:

答案 0 :(得分:0)

您是否设置委托来处理UIImagePickerController的回复?你需要设置一个委托(可能是你正在呈现选择器的视图控制器)来实现UIImagePickerControllerDelegate协议