OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

如何在 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:071417

评论

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

关于 3.0 和 2.0 的数据文件差异以及性能优化思路

爱倒腾的程序员

记一次Native memory leak排查过程 | 京东云技术团队

京东科技开发者

native 企业号 6 月 PK 榜 memory leak

TiDB 升级利器(参数对比)——TiDBA

TiDB 社区干货传送门

7.x 实践

微服务架构的重要性:现代应用开发的关键趋势

2756

微服务架构 微服务、

专访|严靖炜:从参与 MatrixOne 到论文入选 IEEE BMSB 2023

MatrixOrigin

数据库 云原生 超融合

【TiDB v7.1.0】资源管控调研及评测

TiDB 社区干货传送门

7.x 实践

高考成绩都出来了,你的秒杀系统如何了?

冰河

并发编程 多线程 高并发 协程 秒杀系统

发送Tidb告警信息到企业微信群实践

TiDB 社区干货传送门

监控

IPQ9574 IPQ9554 what's the difference?|WIFI7 Solution|Wallys

wallyslilly

ipq9554 ipq9574

远程desk工具利用总结

快乐非自愿限量之名

远程 ToDesk

带你了解爆火的AI框架-LangChain

派大星

在找稳定的企业级数据云平台?奇点云DataSimbaR4.9 LTS发布

Geek_2d6073

无类教育完善内训体系,开启校企合作新篇章

Geek_2d6073

迄今为止最完整的DDD实践

阿里技术

架构 DDD

数字先锋|云上医院长什么样?宁夏固原中医医院带你一探究竟!

天翼云开发者社区

云计算

资源池化:多租户与数据库整合解决方案

TiDB 社区干货传送门

新版本/特性解读 数据库架构设计

来了,kubesphere轻松搭建redis

夜栩

后端 docker image KubeSphere

券商网络信息安全启动三年计划圈重点

原点安全

TIDB v7.1 reource control资源管控特性体验贴

TiDB 社区干货传送门

版本测评 7.x 实践

OpenResty 安装

流火

基于驱动因素的全面预算管理方式

智达方通

智达方通 全面预算管理 业财驱动 驱动因素

从零开始初识机器学习 | 京东云技术团队

京东科技开发者

人工智能 机器学习 企业号 6 月 PK 榜

微服务之道:8个原则,打造高效的微服务体系

不在线第一只蜗牛

微服务 微服务架构

TiDB 多租户方案和原理

TiDB 社区干货传送门

TiDB 底层架构 新版本/特性解读 7.x 实践

慧博云通加入飞桨技术伙伴计划,共同推动企业 AI 应用创新

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

边缘云特点、应用实践和发展趋势浅析

天翼云开发者社区

边缘云

TICDC 数据同步至 MySQL初体验

TiDB 社区干货传送门

迁移

如何用smardaten90天快速开发并上线智慧空间loT物联平台?

热爱编程的小白白

干货|三个维度详解 Taier 本地调试原理和实践

袋鼠云数栈

开源 前端

探索To-D,落地好大夫效能平台

方勇(gopher)

DevOps SRE 效能平台

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