Electron mac申请麦克风/摄像头权限,Electron无法打开麦克风

4 篇文章 0 订阅
3 篇文章 0 订阅
当程序在Mac上无法访问麦克风时,需要在entitlements.mac.plist文件中配置权限,并在package.json中指定该文件。接着,在主进程中添加代码以检查和请求权限。在渲染进程中,通过ipcRenderer发送请求来触发权限申请。确保包含NSMicrophoneUsageDescription来说明权限用途。
摘要由CSDN通过智能技术生成

你可能遇到过这样的问题,程序已经安装在mac上了,但是无法获取mac的麦克风,如下在麦克风列表找不到你的程序,这是因为你的程序没有向mac申请获取麦克风权限,只有向mac申请麦克风权限的程序才会在此处显示,具体如何申请请看下面。
在这里插入图片描述

配置流程:

1.新建entitlements.mac.plist文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.device.audio-input</key>
    <true/>
    <key>com.apple.security.device.camera</key>
    <true/>
  </dict>
</plist>
2.在package.json进行如下配置
"mac": {
      "entitlements": "build/entitlements.mac.plist",
      "extendInfo": {
        "NSMicrophoneUsageDescription": "授权访问麦克风",
        "NSCameraUsageDescription": "授权访问摄像头"
      }
    }
3.完成以上配置后在主进程中添加申请麦克风及摄像头权限的逻辑
const { ipcMain,systemPreferences } = require('electron')
//获取麦克风权限
ipcMain.on("getMediaAccessStatus",async ()=>{
    //检测麦克风权限是否开启
    let getMediaAccessStatus = systemPreferences.getMediaAccessStatus('microphone')
    if(getMediaAccessStatus !== 'granted'){
      //请求麦克风权限
      await systemPreferences.askForMediaAccess('microphone')
    }
})
申请麦克风权限

在渲染进程中发送消息给注进程,让他申请麦克风或者摄像头权限

let {ipcRenderer} = window.require("electron");
ipcRenderer.send("getMediaAccessStatus")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值