Я работаю над приложением с электронным JS, которое требует записи системы. Я на самом деле хочу системный звук микрофона+, как и экранный регистратор (мне просто нужно звук).
Я много исследовал и обнаружил, что в macOS есть ограничения, которые не позволяют захватывать системный звук. Мы должны использовать что -то вроде черной дыры.
Я не хочу, чтобы пользователи устанавливали Blackhole или аналогично использованию моего приложения в их системе.
Существует приложение https://www.granola.ai/, которое записывает систему системы без черного цвета, и да, они также используют электрон. Audio. < /p>
ipcMain.on('start-recording', () => {
// save in the current folder
const outputPath = path.join(app.getAppPath(), `meeting-${Date.now()}.mp3`);
console.log(`Recording to: ${outputPath}`);
// Check device indexes from ffmpeg -f avfoundation -list_devices true -i ""
ffmpegProcess = spawn('ffmpeg', [
'-f',
'avfoundation',
'-i',
'1:0', // 1:0 = mic + system audio, tweak as needed
'-acodec',
'libavdevice',
'-q:a',
'4',
outputPath,
]);
ffmpegProcess.stderr.on('data', (data: any) => {
console.log(`[ffmpeg] ${data}`);
});
ffmpegProcess.on('close', (code: any) => {
console.log(`ffmpeg exited with code ${code}`);
mainWindow?.webContents.send('recording-complete', outputPath);
});
});
ipcMain.on('stop-recording', () => {
console.log('stop-recording--2', ffmpegProcess);
if (ffmpegProcess) {
console.log('stop-recording');
ffmpegProcess.stdin.write('q'); // Graceful stop
ffmpegProcess.stdin.end();
ffmpegProcess = null;
}
});
Подробнее здесь: https://stackoverflow.com/questions/797 ... -blackhole