1

Electron アプリを開発しましたが、アプリの読み込み時にウイルス対策 (ESET) で初めて「Webcam アクセス試行」が発生しました。他の誰かがこれを経験しましたか?

私のアプリはウェブカメラを使用しておらず、ウェブカメラを必要とするコードもありません。

オーディオ録音のためにオーディオにアクセスするコードがあります。ウイルス対策で Web カメラへのアクセスを拒否しましたが、アプリは設計どおりに機能します。ただし、アプリをロードするたびにウイルス対策の警告メッセージが表示されます。ご想像のとおり、これはクールではありません。

これは、ESET (v14.2.10.0) を更新した直後に表面化したため、トリガーされる新しいルールがいくつかあります。これは何かに対する ESET の過敏性ではないと想定する必要があります (AV の機能がどのように機能するのかわかりませんし、ウイルス対策を「非難」することは、ユーザーに提供するための適切な対応とは思えません)。 -私のコードのAPI。

私のオーディオ アクセスでは、ネイティブ Web API を使用しています: AudioContextNavigatorMediaDevicesMediaRecorder。コードの主な行は次のとおりです。

// getting list of all AUDIO devices:
// const audioSources = await navigator.mediaDevices.enumerateDevices({ audio: true }); 
// ^ above does NOT filter by audio only
const audioSources = await navigator.mediaDevices.enumerateDevices();

//  creating a recorder object:
const audioContext = new AudioContext();
const dest = audioContext.createMediaStreamDestination();  

const audioParams = {
  deviceId: "6e5fc2d7ffa5c6c04e06d282a5aa743e983e585a7e12118c80c0cd8646cce4b7", // this ID is from  audioSources object
}
const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: audioParams });
const audioIn = audioContext.createMediaStreamSource(mediaStream);
audioIn.connect(dest);

const audioOptions = {
    bitsPerSecond:   128000,
    mimeType:       'audio/webm; codecs=opus',
};

const recorder = new MediaRecorder(dest.stream, audioOptions);

などのnavigator.mediaDevices.enumerateDevices()パラメータを取らないため、カメラ リクエストがトリガーされます。{ audio: true }enumerateDevices()

の結果を使用しenumerateDevices()てデバイス ID にアクセスし、それを渡して.getUserMedia()特定のデバイスを選択します。これにより、ユーザーは同じ録音に対して 1 つ以上のオーディオ入力を選択できます。

オーディオ デバイスの利用可能なメディアをクエリする/ビデオを除外する方法はありますか?

使用可能なすべてのオーディオ デバイスを識別する別の方法はありますか?

.getUserMedia()ストリームとして返すデバイスを選択するには、他にどのような方法がありますか?

これに関して私が見つけた唯一の既存の情報は、閉鎖された Atom コミュニティ フォーラム にあったものでした。Electron は理由もなく私のウェブカメラにアクセスし続けています- 2 人の開発者が 2020 年 9 月に異なるウイルス対策ソフトウェアで同じ動作を発見しました。解決策はありません。

元々は Electron 8.5.0 を使用して見られました。13.1.2 にアップデートした後も問題が残る

ソフトウェアのバージョン: Electron 13.1.2、ESET 14.2.10.0

4

0 に答える 0