我有一个可以使用NSCameraUsageDescription
拍摄照片和电影的应用
我在Info.plist
中设置了InfoPlist.strings
(实际上,已在+ (void)takePhotoOrMovie:(CFStringRef)mediaType inViewController:(UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate> *)viewController
{
UIImagePickerController *takePhotoOrMovieController = [[UIImagePickerController alloc] init];
takePhotoOrMovieController.sourceType = UIImagePickerControllerSourceTypeCamera;
NSString *mediaTypePhotoOrMovie = (__bridge NSString *)mediaType;
takePhotoOrMovieController.mediaTypes = @[mediaTypePhotoOrMovie];
takePhotoOrMovieController.allowsEditing = YES; // Enables the controls for editing
takePhotoOrMovieController.delegate = viewController;
[viewController presentViewController:takePhotoOrMovieController animated:YES completion:nil];
}
中进行了本地化)。
当应用程序启动并且我试图拍照时,我被要求获得许可,我已经批准了。现在,我可以毫无问题地拍照。
然而,当我尝试拍摄电影时,应用程序因隐私违规而崩溃(请参阅下面的堆栈跟踪)。 这种崩溃有时会在相机界面出现之前发生,有时会发生(见下面的截图)。
我认为这与我呈现相机界面的方式无关,但无论如何这里是代码:
mediaType
照片参数kUTTypeImage
为kUTTypeMovie
,电影参数为<c:forEach items="${dashboardBean.barModel}" var="barChart">
<p:column>
<p:chart type="bar" model="#{barChart}" style="height:400px">
<p:commandButton value="Export" update=":dlg1" oncomplete="PF('dlg1').show();">
<f:setPropertyActionListener target="#{dashboardBean.selectedBarChart}" value="#{barChart}" />
</p:commandButton>
</p:chart>
</p:column>
</c:forEach>
<p:dialog id="dlg1" widgetVar="dlg1" appendTo="@(body)" height="450px" width="800px" >
<p:chart type="bar" model="#{dashboardBean.selectedBarChart}"/>
</p:dialog>
。
知道什么是错的以及如何纠正它?
答案 0 :(得分:3)
您还需要提供NSMicrophoneUsageDescription
密钥。