我正在ionic
中构建一个IOS应用程序来捕获媒体(照片,视频,音频)并在今天遇到一个相当混乱的问题。我使用以下3种方法(在MediaCapture
上):
captureImage()
captureVideo()
captureAudio()
唯一不起作用的是captureImage()
而我无法为我的生活找出原因。 旁注:我 能够使用camera.getPicture()
,但我想对所有3种媒体类型使用MediaCapture
(并且它不会#39;理解为什么我能做到。
以下是一些细节:
ionic
:3.15.2 Cordova
:7.1.0 我使用ionic cordova run ios -l -c -s
在我的设备上运行该应用。
private media: object = {
'image': 'captureImage',
'video': 'captureVideo',
'audio': 'captureAudio'
};
function captureMedia(media) {
console.log('capturing');
const options: CaptureImageOptions = {
limit: 1
};
this.mediaCapture[this.media[media]](options)
.then(
(data: MediaFile[]) => console.log(JSON.stringify(data)),
(err: CaptureError) => console.error(JSON.stringify(err))
);
}
captureMedia('image'); // CRASHES!!
captureMedia('audio'); // WORKS!
captureMedia('video'); // WORKS!
没有输出。没有警告。无控制台输出。只是 kaput !
我觉得我在这里遗漏了一些东西,但我无法看到它是什么。有人可以帮忙吗?
答案 0 :(得分:1)
所以,我最终试图在我的设备上从Xcode运行它,最后得到一个有用的错误消息!事实证明,我的config.xml
缺少一个用于隐私权限的属性。
这是一个失踪的人:
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
<string>Allow photo library access.</string>
</edit-config>
请记住,您还需要以下(我有)的描述:
NSCameraUsageDescription
NSMicrophoneUsageDescription
NSPhotoLibraryUsageDescription
干杯!