gpt4 book ai didi

ios - 为什么 `mediaCapture.captureImage()` 会使我的 `ionic` 应用程序崩溃?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:31:08 28 4
gpt4 key购买 nike

我正在用 ionic 构建一个捕获媒体(照片、视频、音频)的 IOS 应用程序,今天遇到了一个相当令人困惑的问题。我正在使用以下 3 种方法(在 MediaCapture 上):

  • captureImage()
  • captureVideo()
  • captureAudio()

唯一 不起作用的是captureImage(),我这辈子都弄不明白为什么。 旁注:我能够使用camera.getPicture(),但我想使用MediaCapture所有 3 种媒体类型(我为什么不能)。

这里有一些细节:

环境

  • 操作系统:Mac OS 10.12.6
  • 节点:9.0.0
  • ionic:3.15.2
  • Cordova :7.1.0
  • iOS:11.1

我正在使用 ionic cordova run ios -l -c -s 在我的设备上运行该应用。

示例代码

示例代码(提取的 typescript )
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!

我觉得我在这里遗漏了一些东西,但我看不到它是什么。谁能帮忙?

最佳答案

所以,我最终尝试通过 Xcode 在我的设备上运行它,并最终得到了一条有用的错误消息!事实证明,我的 config.xml 缺少一个隐私权限属性。

这是缺少的那个:

<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
<string>Allow photo library access.</string>
</edit-config>

请记住,您还需要以下内容的说明(我有):

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  • NSPhotoLibraryUsageDescription

干杯!

关于ios - 为什么 `mediaCapture.captureImage()` 会使我的 `ionic` 应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044951/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com