最近使用Electron+VUE2.0+Element-UI+腾讯云的实时音视频开发了一个互动直播的客户端,中间踩了不少坑,这里说一下感受。
如果要做直播客户端,不要求跨平台的话,能用C++、C#开发就不要用Electron去开发。腾讯云虽然提供了一个Electron的sdk,但是这个sdk版本的限制太多。比如:Electron的sdk有个api是打开摄像头并推流,由于业务的特殊性需要把摄像头画面混入到桌面的辅流中,混流的api极其复杂麻烦。我便考虑到新建一个窗口把摄像头的画面显示在屏幕上,让用户随意拖动。我咨询了腾讯云的客服,该sdk并没有提供预览摄像头的功能,只能打开摄像头并推流,这里显然浪费了一个流。用户往往只需要看到桌面,使用Electron创建一个窗口专门显示摄像头就可以了,这样桌面共享上自然就有了摄像头画面还能让主播随意拖动。
另外一个硬伤就是打其他平台的安装包,会出现很多莫名奇妙的问题。比如我在64位的win10上32位的node,打包32位win10的安装包。使用的时候,当打开摄像头、屏幕,电脑喇叭的音量会突然变成60。
通过虚拟机安装一个32位的win10打包就没有问题。