UIImagePickerController 设置 VideoMaximumDuration不起作用 | 您所在的位置:网站首页 › Reddit客户端 › UIImagePickerController 设置 VideoMaximumDuration不起作用 |
今天突然用到用UIImagePickerController录制视频的功能,还有个需求就是录制的视频控制在12秒呢,刚好UIImagePickerController有这个属性我们可以设置下。 刚开始郁闷的是设置了 pickerView.videoMaximumDuration = 12.0f; 这个也不行,不起作用,看代码是没有任何一点问题。 - (void)recordPicker:(id)sender { if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { // 检测设备是否支持录像。 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"" message:@"设备无摄象头" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; return; } UIImagePickerController* pickerView = [[UIImagePickerController alloc] init]; pickerView.sourceType = UIImagePickerControllerSourceTypeCamera; NSArray* availableMedia = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; pickerView.mediaTypes = [NSArray arrayWithObject:availableMedia[1]]; [self presentModalViewController:pickerView animated:YES]; // 设置最大录像时间 pickerView.videoMaximumDuration = 12.0f; pickerView.delegate = self; [pickerView release]; } 这样看起来很ok,但是 pickerView. videoMaximumDuration这个怎么也不起作用,那怎么办呢?找了找原因是因为我没有设置 pickerView.allowsEditing = YES; 加上了这个再次运行还是不行。奇怪了,然后在找找原因才发现是语句的位置不对, [self presentModalViewController:pickerView animated:YES]; 这句话一定要放在后面,要不就没有作用。 最后代码入下: - (void)recordPicker:(id)sender { if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { // 检测设备是否支持录像。 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"" message:@"设备无摄象头" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; return; } UIImagePickerController* pickerView = [[UIImagePickerController alloc] init]; pickerView.sourceType = UIImagePickerControllerSourceTypeCamera; pickerView.allowsEditing = YES; NSArray* availableMedia = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; pickerView.mediaTypes = [NSArray arrayWithObject:availableMedia[1]]; pickerView.videoMaximumDuration = 12.0f; pickerView.delegate = self; [self presentModalViewController:pickerView animated:YES]; [pickerView release]; } 效果图:
效果图:
源代码下载地址 |
CopyRight 2018-2019 实验室设备网 版权所有 |