web 技术分享| React 版本 anyRTC 示例对等连接
前言
大家好,笔者以往发布过很多关于 WebRTC 的知识,和很多基于 anyRTC WebSDK 开发的音视频通讯示例,收获了很多开发人员的一致好评,在以往的示例中笔者是基于 Vue 框架进行编写,后台有小伙伴私信笔者,希望笔者出一个基于 React 框架的音视频示例,笔者在收到私信的第一时间就开始着手编写,现在把它发布出来供大家参考。
开发准备
在开始写代码之前还需要做一些准备工作,如果你之前没有使用过 anyRTC Web SDK 这里还需要花几分钟时间准备一下, 详见:开发前期准备
创建 React 程序
全局安装
通过 create-react-app 项目名称(注:项目名称不能有大写)
下载并引入项目依赖
在 App.js 文件中引入
定义初始 state 数据
创建 rtcClient 对象
通过
ArRTC.createClient
创建的客户端对象。
监听远端用户发布和取消发布音视频
user-published 该回调通知远端用户发布了新的音频轨道或者视频轨道,你可以在该回调中订阅并播放远端用户的音视频轨道。详见 subscribe 和 RemoteTrack.play。
user-unpublishe 该回调通知远端用户取消发布了音频或视频轨道。
加入频道
join 加入频道,该方法让用户加入通话频道,在同一个频道内的用户可以互相通话。
调用该方法加入频道时,本地会触发 ArRTCClient.on("connection-state-change") 回调。
通信场景下的用户和直播场景下的主播加入频道后,远端会触发 ArRTCClient.on("user-joined") 回调。
获取本地摄像头和麦克风并创建音视频轨道
getCameras 该方法枚举可用的视频输入设备,比如摄像头,调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的视频输入设备。
getMicrophones 该方法枚举可用的音频输入设备,比如麦克风,调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的音频输入设备。
createMicrophoneAudioTrack 通过麦克风采集的音频创建一个音频轨道。
createCameraVideoTrack 通过摄像头采集的视频创建一个视频轨道。
挂断离开
leave 调用该方法离开频道时,本地会触发 ArRTCClient.on("connection-state-change") 回调。
通信场景下的用户和直播场景下的主播离开频道后,远端会触发 ArRTCClient.on("user-left") 回调。
获取频道输入框的值
render 函数
CSS
运行效果和示例代码
感兴趣的小伙伴可以下载源码 github
版权声明: 本文为 InfoQ 作者【anyRTC开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/fee7cdf5d78fa3a6a80b2acb2】。文章转载请联系作者。
评论