UNPKG

@hysc/boom-cpp-plugin

Version:

```markdown 以下是一个简单的使用示例,展示如何在 Electron 主进程中集成和使用该插件,使用 CommonJS 的引用方式:

93 lines (75 loc) 2.6 kB
# 文件说明 ```markdown 以下是一个简单的使用示例,展示如何在 Electron 主进程中集成和使用该插件,使用 CommonJS 的引用方式: ```javascript const { app, BrowserWindow, ipcMain } = require('electron'); const CppPluginBridge = require('@hysc/boom-cpp-plugin'); let mainWindow; let mCppPlugin; app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false, }, }); mainWindow.loadURL('file://' + __dirname + '/index.html'); ipcMain.on('start-audio-capture', (event, args) => { if (!mCppPlugin) { mCppPlugin = new CppPluginBridge(); mCppPlugin.bindTargetWindow(mainWindow); mCppPlugin.init(); mCppPlugin.setAudioPluginEventCallback((audioData) => { console.log('Received audio data:', audioData); }); } mCppPlugin.startAudioCapture(args.sourceId || 0, args.captureMode || false); }); ipcMain.on('stop-audio-capture', () => { if (mCppPlugin) { mCppPlugin.destroy(); mCppPlugin = null; } }); ipcMain.on('start-window-detection', (event, args) => { if (!mCppPlugin) { mCppPlugin = new CppPluginBridge(); mCppPlugin.bindTargetWindow(mainWindow); mCppPlugin.init(); } mCppPlugin.setWinPluginEventCallBack((eventData) => { console.log('Window detection event:', eventData); }); mCppPlugin.startWindowDetector(args.sourceId, args.sourceName); }); ipcMain.on('stop-window-detection', () => { if (mCppPlugin) { mCppPlugin.destroy(); mCppPlugin = null; } }); }); app.on('window-all-closed', () => { if (mCppPlugin) { mCppPlugin.destroy(); mCppPlugin = null; } app.quit(); }); ``` 在渲染进程中,可以通过 `ipcRenderer` 发送消息来控制插件: ```javascript const { ipcRenderer } = require('electron'); // 开始音频采集 ipcRenderer.send('start-audio-capture', { sourceId: 0, captureMode: false }); // 停止音频采集 ipcRenderer.send('stop-audio-capture'); // 开始窗口检测 ipcRenderer.send('start-window-detection', { sourceId: 'window:12345', sourceName: 'MyWindow' }); // 停止窗口检测 ipcRenderer.send('stop-window-detection'); ``` 以上代码展示了如何初始化插件、绑定窗口、启动音频采集和窗口检测等功能。 ```