2010-12-17 40 views
2

我已经实现了执行视频录制功能的代码。它在3GS设备上正常工作。我想根据某些定时器设置来限制视频录制。比方说,我想让用户只做20秒或35秒的录像。我怎样才能做到这一点?录制视频时,我可以在媒体播放器上显示定时器类型的控件吗?iPhone:基于计时器的视频录制?

请给我建议。

这是我的用于视频记录码:

UIImagePickerController *pickerController = 
         [[[UIImagePickerController alloc] init] autorelease]; 
    pickerController.delegate = self; 
    pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
    pickerController.showsCameraControls = YES; 
    pickerController.mediaTypes = [NSArray arrayWithObject:(id)kUTTypeMovie]; 
    [self presentModalViewController:pickerController animated:YES]; 
+0

设置定时器,我看到在“UIImagePickerController类参考”参数“videoMaximumDuration”。我想,我可以用它来录制视频来限制时间。例如:“pickerController.videoMaximumDuration = 15;请指教。 – Getsy 2010-12-18 12:37:46

+0

你有没有试过,这是最好的解决办法。 – 2010-12-19 09:31:24

+0

我只会在2天后才能看到物理3GS设备,所以我现在无法测试录像如果可能的话,有人可以帮助我的代码并测试它吗? – Getsy 2010-12-20 10:17:50

回答

6

videoMaximumDuration期望一个NSTimeInterval,这是一个浮点值,一tpyedef。所以你应该通过一个浮点值。试着这样说:

UIImagePickerController *pickerController = [[UIImagePickerController alloc] init]; 
pickerController.delegate = self; 
pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
pickerController.showsCameraControls = YES; 
pickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; // kUTTypeMovie is actually an NSString. 
pickerController.videoMaximumDuration = 30.0f; // limits video length to 30 seconds. 
[self presentModalViewController:pickerController animated:YES]; 
[pickerController release]; 
+0

嗨Bjorn,非常感谢。顺便说一句,你有没有测试过它?视频录制只允许长达30秒的代码,并返回用户“使用”和“Retake”屏幕? – Getsy 2010-12-20 14:37:05

+0

我测试过了,它可以像预期的那样工作。谢谢。 – Getsy 2010-12-21 10:51:53

0

UIImagePickerController类具有财产videoMaximumDuration该协会致力于NSTimeInterval

默认情况下它的值设置为10分钟,但你可以改变它根据你的需要是浮点值

所以,如果你让一个名为videoPickerControllerUIImagePickerController类的对象,那么你可以捕捉视频喜欢 -

videoPickerController.videoMaximumDuration = 25.0f;