这个 Flutter 插件是 Agora 视频 SDK 的封装
Agora.io 为您提供构建模块,通过简单而强大的 SDK 添加实时语音和视频通信。您可以快速集成 Agora SDK 以在自己的应用程序中实现实时通信。
注意:
main
分支是基于 Agora 原生 SDK 4.x 的重大更新,引入了一些突破性变更。之前的版本(版本 < 6.0.0)请参见以下分支:
要使用此插件,请将 agora_rtc_engine
作为依赖项添加到您的 pubspec.yaml 文件中。
Agora 视频 SDK 需要 相机
和 麦克风
权限才能开始视频通话。
有关最新的权限设置,请参考 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" />
有关最新的权限设置,请参考 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
列中添加一些描述。
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_engine
>= 6.3.0
由于性能限制,目前在Flutter端直接实现视频和音频原始数据处理等高级功能是不可行的。
我们使您能够在Flutter中通过使用Agora RTC原生SDK的RtcEngine
(Android)或AgoraRtcEngineKit
(iOS)的原生句柄来创建RtcEngine
。这种方法使您的应用程序能够通过agora_rtc_engine
包直接利用Agora RTC原生SDK的高级功能,从而弥合原生能力和Flutter环境之间的差距。
更多详情,请参考ProcessVideoRawData示例。
如果您在发布模式下遇到iOS不工作的问题,您可能需要设置以下配置以避免符号被剥离。
请参阅Flutter文档以获取更多信息。
如果您对示例项目有任何问题或建议,欢迎提交issue或拉取请求。
要参与此SDK的开发,请参阅CONTRIBUTING.md。
该项目采用MIT许可证。