agora_rtc_engine
这个 Flutter 插件是 Agora 视频 SDK 的封装
Agora.io 为您提供构建模块,通过简单而强大的 SDK 添加实时语音和视频通信。您可以快速集成 Agora SDK 以在自己的应用程序中实现实时通信。
注意:
main
分支是基于 Agora 原生 SDK 4.x 的重大更新,引入了一些突破性变更。之前的版本(版本 < 6.0.0)请参见以下分支:
使用方法
要使用此插件,请将 agora_rtc_engine
作为依赖项添加到您的 pubspec.yaml 文件中。
入门指南
- 从 example 文件夹获取一些基本和高级示例。
隐私权限
Agora 视频 SDK 需要 相机
和 麦克风
权限才能开始视频通话。
Android
有关最新的权限设置,请参考 https://docs.agora.io/en/video-calling/get-started/get-started-sdk?platform=android#project-setup 的文档
查看 AndroidManifest.xml 文件中所需的设备权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Agora SDK 需要蓝牙权限,以防用户使用蓝牙设备。 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 对于 Android 12 及以上设备,还需要以下权限。 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
iOS 和 macOS
有关最新的权限设置,请参考 https://docs.agora.io/en/video-calling/get-started/get-started-sdk?platform=ios#project-setup 的文档
打开 Info.plist
并添加:
Privacy - Microphone Usage Description
,并在Value
列中添加一些描述。Privacy - Camera Usage Description
,并在Value
列中添加一些描述。
Web(alpha 版)
agora_rtc_engine
的 Web 版本目前处于 alpha 阶段,文档不完整,目前仅在桌面 Web 上进行了测试。
agora_rtc_engine
Web 版本基于 iris_web 构建,这是 Agora Web SDK 4.x 的封装。这有助于通过 Agora Web SDK 4.x 统一原生 SDK(Android/iOS/macOS/Windows)的 API。请注意,agora_rtc_engine Web 版本底层使用 Agora Web SDK 4.x,因此只能实现原生 SDK API 的一个子集。如果 API 返回错误代码为-4
的AgoraRtcException
,则表示目前不支持这些 API。
下载 iris_web
(见下面的链接)构件,并将其作为 <script />
标签包含在您的 <your-project>/web/index.html
文件中。例如:
项目结构
<your-project>
|__web
|__index.html
|__iris-web-rtc_<x.y.z>.js
<!-- <your-project>/web/index.html -->
<!DOCTYPE html>
<html>
...
<body>
...
<script src="iris-web-rtc_<x.y.z>.js"></script>
</body>
</html>
下载: https://download.agora.io/sdk/release/iris-web-rtc_n430_w4200_0.7.0.js
用于测试目的
出于测试目的,您可以直接依赖Agora CDN:
<!-- <your-project>/web/index.html -->
<!DOCTYPE html>
<html>
...
<body>
...
<script src="https://download.agora.io/sdk/release/iris-web-rtc_n430_w4200_0.7.0.js"></script>
</body>
</html>
与Agora RTC原生SDK交互(仅限Android/iOS)
注意: 此功能需要
agora_rtc_engine
>= 6.3.0
由于性能限制,目前在Flutter端直接实现视频和音频原始数据处理等高级功能是不可行的。
我们使您能够在Flutter中通过使用Agora RTC原生SDK的RtcEngine
(Android)或AgoraRtcEngineKit
(iOS)的原生句柄来创建RtcEngine
。这种方法使您的应用程序能够通过agora_rtc_engine
包直接利用Agora RTC原生SDK的高级功能,从而弥合原生能力和Flutter环境之间的差距。
更多详情,请参考ProcessVideoRawData示例。
已知问题
iOS在发布模式下不工作
如果您在发布模式下遇到iOS不工作的问题,您可能需要设置以下配置以避免符号被剥离。
请参阅Flutter文档以获取更多信息。
API参考资源
反馈
如果您对示例项目有任何问题或建议,欢迎提交issue或拉取请求。
如何贡献
要参与此SDK的开发,请参阅CONTRIBUTING.md。
相关资源
- 查看我们的FAQ,看看您的问题是否已被记录。
- 深入Agora SDK示例以查看更多教程。
- 查看Agora使用案例以了解更复杂的实际用例。
- 开发者社区管理的仓库可以在Agora社区找到。
- 如果在集成过程中遇到问题,欢迎在Stack Overflow上提问。
- 发布说明。
许可证
该项目采用MIT许可证。