废话不多说,咱直接进入正题!
创建 Electron 项目
前提条件
在使用电子进行开发之前,需要安装Node.js。要检查Node.js是否正确安装,请在您的终端输入以下命令:
节点v
npm -v
脚手架创建
电子应用程序遵循与其他Node.js项目相同的结构。首先创建一个文件夹并初始化国家预防机制包。
我的电子应用光盘
国家预防机制初始化然后,将电子包安装到应用的开发依赖中。
国家预防机制安装-保存-开发电子最后,您希望能够执行电子如下所示,在您的package.json配置文件中的剧本字段下增加一条开始命令:
{
脚本' : {
启动' : '电子
}
}开始命令能让您在开发模式下打开您的应用
国家预防机制启动在main.js文件中的创建窗口的函数中加入此代码可以打开控制台
主窗口。网络内容。opendevtools()
开发音视频
前提
引入anyRTC提供的web RTC SDK本地引入:官网下载加拿大引入:脚本src=' https://ardw。任何RTC。io/SDK/web/ArRTC @ latest。js '/NPM脚本引入:
npm i ar-rtc-sdk -S
构建页面(简易版样式没写)
分部峰峰值/峰值
输入id='appid '类型=“文本”占位符='输入appid '必填/
/div
差异
pcchannel/P
输入id='频道'类型='文本'占位符='输入频道'必填/
/div
差异
公共工程/项目
输入id='uid '类型=“文本”占位符=“输入uid”必填/
/div
!-用户视频容器-
div id='远程玩家列表' class='行视频组'/div
JS 构建语音通话(引用了JQ)
//ArRTC客户端定义变量客户端;
//存放音视频
var localTracks={
视频跟踪:为空,
音频跟踪:空,
};
//存放频道用户
var远程用户={ };
//ArRTC客户端选项
定义变量选项={ 0
appid: null,
通道:为空,
uid: null,
};
//查看软件开发工具包(软件开发工具包)版本
console.log(ArRTC .VERSION);
//检测麦克风
const camera=等待arrtc。getcamera();
//检测摄像头
const Mimicals=await arrtc。GetMimicals();
如果(摄像机。长度||麦克风。长度){ 0
options.appid=$('#appid ').val();
options.channel=$('#channel ').val();
options.uid=$('#uid ').val();
//加入频道
join();
}
异步函数联接(){ 0
//创建本地视图
const localplayer=$(
`
div class=' col-6 ' id=' local _ video '
p id=' local-player-name ' class=' player-name '/p
' div class='统计玩家'
div id=' local-player ' class=' player '/div
div id=' local-stats ' class=' stream-stats '/div
/div
/div
`
);
$('#remote-playerlist ').追加(本地玩家);
//创建ArRTC客户端
客户端=等待arrtc。创建客户端({ 0
mode: 'rtc ',
代码c: 'h264 ',
});
//用户发布
client.on('user-published ',handleuser published);
//用户停止发布
client.on('user-unpublished ',handleuser unpublished);
[
options.uid,
localTracks.audioTrack,
localTracks.videoTrack,
]=等待诺言
//加入渠道
client.join(
options.appid,
选项。频道,
null,
options.uid || null
),
//使用麦克风和摄像头创建本地轨道
arrtc。createmicrophoneaudiotrack(),
ArRTC.createCameraVideoTrack(),
]);
//播放本地视频曲目
本地曲目。视频轨道。play('本地玩家');
$("#本地玩家名称").文本(`本地视频($ { options。uid })`);
//发布本地视频
客户端。发布(对象。值(本地跟踪));
}
//远端用户发布
函数handleUserPublished(用户,mediaType){ 0
const id=user.uid
remoteUsers[id]=用户;
订阅(用户,mediaType);
}
//远端用户停止发布
函数handleUserUnpublished(用户){ 0
const id=user.uid
删除远程用户[id];
$(`#player-wrapper-${id} `).移除();
}
//订阅远端用户发布的音视频
异步函数订阅(用户,mediaType){ 0
const uid=user.uid
//订阅远程用户
wait client.subscribe(用户,mediaType);
if(mediaType===' video '){ 0
const player=$(
`
div id=' player-wrapper-$ { uid } ' class=' col-6 '
p class=' player-name '远程用户($ { uid })/p
' div class='统计玩家'
div id=' player-$ { uid } ' class=' player '/div
div class=' track-stats stats '/div
/div
/div
`
);
$('#remote-playerlist ').追加(播放器);
用户。视频轨道。play(` player-$ { uid } `);
}
if(mediaType===' audio '){ 0
用户。音频跟踪。play();
}
}
运行
npm开始打包
下载电子包装机国家预防机制安装-保存-开发电子打包程序在package.json文件的剧本加入
packager_all': '电子包装机/anyrtc -全力以赴/dist-overwrite-electron-version=11。1 .1-忽略=node _ modules-icon=./assets/images/favicon.icos '执行
国家预防机制打包程序_全部