ことの発端
navigator.mediaDevices.getUserMediaを使って、ウェブカメラにアクセスするMacアプリを作っていて、
electron .
で起動した際には問題ないのに、electron-packagerを使ってアプリ書き出しすると、カメラの映像が取得できずに困ったので対策を調べました。
環境
- maxOS 👉 15.0.1
- electron 👉 33.0.1
- electron-packager 👉 17.1.2
解決法
systemPreferences.askForMediaAccess を使う。
import { systemPreferences } from 'electron'; (async () => { await systemPreferences.askForMediaAccess('camera'); // もろもろの処理を書く })();
という感じで、カメラアクセスの許可を取るようにしたら無事に解決しました。
マイクも同様に許可を取る必要がある模様です。