electron主進程調用命令行

electron集成了node和谷歌瀏覽器,這使得在頁面開發的基礎上可以使用node命令行相關的東西。
這裏我們用到了node的child_process子進程這個包。

const { exec } = require('child_process')

下面說一下我的使用場景吧
公司的業務是要推送一個aac格式的音頻出去,但是瀏覽器上的flash推流推出去的格式是speex不符合要求。
於是就想到了用ffmpeg進行推流,但是這個東西需要命令行下進行,這裏electron就很好的解決了這個問題。
下面這個是獲取電腦上音視頻設備的接口(雖然瀏覽器也可以獲取這裏是舉個例子),html發來訂閱事件觸發主進程的事件去創建命令行命令。

exec(
      path.join(__dirname, './ffmpeg.exe') + ' -list_devices true -f dshow -i dummy', 
      { encoding: 'utf-8' }, 
      (error, stdout, stderr) => {
        win.webContents.send('getDevice',{stderr})
    });

回調中的stderr就是獲取到的設備字段但是需要做字符串切割,還有一點要注意的是記得設置encoding避免返回的字段中有中文的時候會出現亂碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章