此 Flutter 插件 是对 Agora 视频 SDK 的包装。
Agora.io 通过一个简单而强大的 SDK 为您提供了添加实时语音和视频通信的构建块。您可以集成此 SDK 以便在您自己的应用程序中快速实现实时通信。
为了使用此插件, 添加 agora_rtc_engine
到您的 pubspec.yaml 文件中。
Agora 视频 SDK 需要 摄像头
和 麦克风
权限来开始视频通话。
打开 AndroidManifest.xml
文件并且添加必备的权限到此文件中.
<manifest>
...
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<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_NETWORK_STATE" />
<!-- The Agora SDK requires Bluetooth permissions in case users are using Bluetooth devices.-->
<uses-permission android:name="android.permission.BLUETOOTH" />
...
</manifest>
打开 info.plist
文件并且添加:
Privacy - Microphone Usage Description
,并且在Value
列中添加描述。Privacy - Camera Usage Description
, 并且在Value
列中添加描述。
您的程序可以在后台运行音视频通话,前提是您开启了后台模式。在 Xcode 中选择您的 app target,点击 Capabilities 标签,开启 Background Modes,并且检查 Audio、AirPlay 和 Picture in Picture。
在Android/iOS中与RtcEngine/AgoraRtcEngineKit交互
由于性能原因,agora_rtc_engine
暂时没有实现agora native(Android/iOS) sdk的所有功能,如自定义音频采集和渲染,自定义视频采集和渲染,原始音频数据等功能,agora_rtc_engine
提供RtcEnginePlugin/RtcEnginePlugin,允许你在Android/iOS代码中与Flutter端创建的RtcEngine交互,你可以继承RtcEnginePlugin/RtcEnginePlugin实现自己的插件,在onRtcEngineCreated
回调中获取RtcEngine/AgoraRtcEngineKit,请注意不要在Android/iOS中调用RtcEngine.destroy/AgoraRtcEngineKit.destroy方法,因为这会影响Flutter端的RtcEngine功能。如何使用RtcEnginePlugin
,请查看我们提供的音频自采集demo:
Android:CustomAudioPlugin.kt
iOS:CustmoAudioSourcePlugin.swift
我们的 SDK 使用 PlatformView
,您需要设置 io.flutter.embedded_views_preview
为 YES
在您的 info.plist 中。
如果您使用 stable
版本的 flutter
,PlatformView
会导致内存泄漏,您可以运行 flutter channel beta
您可以参考这个 pull request
如果你有任何问题或建议,可以通过 issue 的形式反馈。
为了提升 SDK 的质量和易用性, 请参考我们的 贡献说明。
- 你可以先参阅 常见问题
- 如果你想了解更多官方示例,可以参考 官方 SDK 示例
- 如果你想了解声网 SDK 在复杂场景下的应用,可以参考 官方场景案例
- 如果你想了解声网的一些社区开发者维护的项目,可以查看 社区
- 若遇到问题需要开发者帮助,你可以到 开发者社区 提问
- 如果需要售后技术支持, 你可以在 Agora Dashboard 提交工单
示例项目遵守 MIT 许可证。