写点什么

如何在 React Native 中实现视频通话(上)

  • 2019-11-30
  • 本文字数:1564 字

    阅读完需:约 5 分钟

如何在 React Native 中实现视频通话(上)

对于 Web、iOS、Android 开发者来讲,React Native 给跨平台开发工作带来了很大的帮助。仅用 JavaScript 就可以创建运行于移动端的应用。同时,你也可以将 React Native 代码与 Native 代码结合,不论你是用 Objective C、Java 还是用 Swift 开发。


有一位 Agora 开发者,同时也是 React Native 爱好者(Github:syanbo)采用 Agora SDK 写了一个 React Native 封装模块,可实现直播、多人语音或视频会议,当然,同时支持 Android、iOS 平台。


Github 地址:https://github.com/syanbo/react-native-agora


当他在 Agora 的交流群里发出来时,我们也是稍感意外。感谢开发者们对我们的支持。如果你也默默地做了什么新鲜尝试,并用到了 Agora SDK,欢迎私信告诉我们,我们也很乐意帮你分享给更多开发者。


另一方面,现在声网 Agora SDK 已经支持 React Native,能帮助你利用 React Native 为应用增加实时音视频功能。我们之前也开源了一个 Demo,点击「阅读原文」可以查看详细代码,实现了基本的视频通话功能,与 @syanbo 的有些差别。为了方便大家开发,我们简单介绍一下,做一个 React Native 实时视频通话应用的接口调用逻辑,如果你也正在做 React Native 开发,会对你有帮助:

开发环境

首先需要你注册一个 Agora 开发者账号,并准备好 Node.js 6.9.1+开发环境。


Android 开发者还需要:


  • Android Studio 2.0+

  • 编辑器,如 Sublime Text

  • Android 设备(不支持模拟器)


iOS 开发者则需要:


  • Xcode 8.0+

  • iPhone 或 iPad(不支持模拟器)

快速开始

下面我们来为应用创建 Agora React Native wrapper

注册账号,并获取一个 App ID

在 Agora.io 注册一个开发者账号,每个账号每个月有 10000 分钟的免费通话,可以满足大家日常开发与测试


进入 Dashboard ,选择左侧边栏的项目->项目列表


复制页面中的 App ID

更新并运行 Sample App

打开 App.js 文件。在 render() 中,将里面的 App ID 更新为你刚刚复制的 App ID。


1render() {2    AgoraRtcEngine.createEngine('YOUR APP ID');3}
复制代码


使用终端或 Command Prompt,cd 进入你的项目目录,然后输入 npm install,生成项目文件。


添加适当的 SDK,连接设备,然后按如下所述步骤运行项目:


Android:


下载 Agora Video SDK。


解压缩下载的 SDK 包并将 libs/agora-rtc-sdk.jar 文件复制到该 android/app/libs 文件夹中。


然后将 libs/arm64-v8a/x86/armeabi-v7a 文件夹复制到该 android/app/src/main/jniLibs 文件夹中。


在 Android Studio 中,打开 Android 项目文件夹并连接 Android 设备。


同步并运行项目。


iOS:


下载 Agora Video SDK。


解压缩下载的 SDK 包并将 libs/AograRtcEngineKit.framework 文件复制到该 ios/RNapi 文件夹中。


打开 RNapi.xcodeproj 并连接 iPhone 或 iPad 设备。


应用有效的配置文件并运行该项目。

为已有 React Native 应用添加视频通话

以下要介绍的接口主要实现:


  • 渲染视图

  • 加入频道

  • 离开频道

  • 切换摄像头

  • 切换 Audio Route

  • 添加事件监听器


文件中的 App 类扩展 App.js 包含 React Native Android/iOS 示例应用程序的相关 Agora SDK 代码。


1export default class App extends Component {2    ...3}
复制代码

渲染视图

该 render()方法在其 return 中生成 UI 元素。在 return 之前的代码中,根据需要来配置 Agora engine。


1render(){ 2  ... 3  return(4    ... 5  ); 6}
复制代码


在渲染之前,我们需要先创建 RTC Engine。在如下代码中填写你的 App ID。


1AgoraRtcEngine.createEngine('YOUR APP ID');
复制代码


创建完成之后,启用视频与音频


1AgoraRtcEngine.enableVideo();2AgoraRtcEngine.enableAudio();
复制代码


设置视频和频道配置文件。如下述代码中,视频被设定为宽度 360、高度 640,帧率为 15,比特率为 300:


1AgoraRtcEngine.setVideoProfileDetail(360,640,15,300); 2    AgoraRtcEngine.setChannelProfile(AgoraRtcEngine.AgoraChannelProfileCommunication);
复制代码


2019-11-30 22:072441

评论

发布
暂无评论
发现更多内容

前端基础五之jQuery基础

ベ布小禅

8月日更

替换及重置Homebrew默认源以及M1安装

一个大红包

8月日更

Go 让 Apache APISIX 如虎添翼

API7.ai 技术团队

Apache 开源 插件 APISIX Go 语言

租房市场是流动的么?

escray

生活记录 8月日更 搜房记 租房

Go- 基本类型和运算符

HelloBug

Go 语言 布尔类型 基本类型和运算符 数字类型

在华为P50 Pro中,听到AI异构通信的朱弦三叹

脑极体

字节架构师离职后,熬夜整理55W字Java面试手册,逆风翻盘进阿里

Java 编程 程序员 架构 面试

基于一万小时定律去规划职业

非著名程序员

生涯规划 职场 职业规划 8月日更

【六顶思考帽】学习心得

LeifChen

8月日更 六顶思考帽 创新思维

Activiti数据库表结构

金陵老街

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java 编程 面试 IT 计算机

狂刷《Java权威面试指南(阿里版)》,冲击“金九银十”有望了

Java 程序员 架构 面试 大厂

排查指南 | 两个案例学会从埋点排查 iOS 离线包

蚂蚁集团移动开发平台 mPaaS

mPaaS

腾讯「小借条」引发的思考:区块链+的商业模式让各企业争先恐后的奥秘

CECBC

markdown不支持代码块和表格,离开这里了

DBKernel

凭借一份“面试真经pdf”,我四面字节跳动,拿下1-2级offer

Java 程序员 面试 后端 计算机

腾讯、阿里纷纷看好的NFT,能否成为拯救区块链的良药?

CECBC

Apache APISIX 在 Airwallex 的应用 | 专访 Airwallex 技术平台负责人李杨

API7.ai 技术团队

Apache 开源 案例分享 api 网关 APISIX

DevOps 调查第十年,如何借助工具实现落地?

飞算JavaAI开发助手

DevOps 基础软件 自动化平台

fil挖矿难度大不大?fil挖矿1T收益是多少?

fil挖矿难度大不大 fil挖矿1T收益是多少

字节大牛的1850页Leetcode刷题笔记外泄!用实力折服众人

Java 程序员 字节跳动 面试 算法

千字真言,字字珠玑,我的Golang学习笔记,赤诚分享

奔着腾讯去

Go 语言

进化十多年,四足机器人的网红属性有改变吗?

脑极体

厉害!GitHub星标70K阿里大佬手写的Spring Boot实战手册真不错

Java 编程 程序员 架构 计算机

「古老」茶产业碰上「年轻」区块链,能否擦出新火花?

CECBC

如何利用 SEI 实现音画同步?

ZEGO即构

音视频 音画同步 数据流录制 flv

DevOps如何攻克研发流程六大痛点?

BoCloud博云

坚持“一城市一矿山” 拾起卖争当循环产业领跑者

InfoQ 天津

Fil火爆的原因是什么?fil未来价格会多少钱一枚?

分布式存储 IPFS fil fil价格 fil行情

fil挖矿必看!fil挖矿步骤有哪些?fil挖矿的效率如何?

分布式存储 IPFS fil fil挖矿

netty系列之:netty中的懒人编码解码器

程序那些事

Java Netty nio 程序那些事

如何在 React Native 中实现视频通话(上)_文化 & 方法_声网_InfoQ精选文章