Skip to content

Latest commit

 

History

History
169 lines (107 loc) · 9.33 KB

README.zh.md

File metadata and controls

169 lines (107 loc) · 9.33 KB

agora_rtc_engine

Pub.dev likes Pub.dev points
latest version Platform License RTE Dev Slack Link

English

此 Flutter 插件 是对 Agora 视频 SDK 的包装。

Agora.io 通过一个简单而强大的 SDK 为您提供了添加实时语音和视频通信的构建块。您可以集成此 SDK 以便在您自己的应用程序中快速实现实时通信。

如何使用

为了使用此插件, 请添加 agora_rtc_engine 到您的 pubspec.yaml 文件中。

快速开始

  • example 目录获取一些基础和高阶的参考示例。

隐私权限

Agora 视频 SDK 需要 摄像头麦克风 权限来开始视频通话。

Android

查看 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" />
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
    tools:ignore="ProtectedPermissions" />
  ...
</manifest>

iOS 和 macOS

打开 Info.plist 文件并且添加:

  • Privacy - Microphone Usage Description,并且在 Value 列中添加描述。
  • Privacy - Camera Usage Description, 并且在 Value 列中添加描述。

Flutter2 支持

空安全

我们在 4.0.1 版本已经正式支持了空安全。 此版本不向下兼容,需要您的工程迁移至空安全,具体参考 迁移至空安全

多平台

Linux

暂不支持。

macOS

您可以从 agora_rtc_engine.podspec 文件中获取更多信息, 比如在 macOS 上的依赖库。

Windows

您可以从 CMakeLists.text 文件中获取更多信息, 比如在 Windows 上的依赖库。

Web

我们使用 js 库实现 dart 对 JavaScript 的调用。

我们针对 Web SDK 有一个 AgoraRtcWrapper.bundle.js 包装库。

此包装库是 Iris-Rtc-Web 开源库的编译产物,它尝试将 Web SDK 接口映射成 Native SDK 接口,我们将其开源以便开发者定位和排查问题。

我们已将其作为 Git Submodule 导入到工程中,您可以在 web 目录中找到它。

在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

常见问题

请优先查看 Pinned issues 和在 Issues 中搜索。

Android

Android 9.0 后台采集无效

iOS

在 Xcode 中选择您的 TARGET,点击 Signing & Capabilities 标签,开启 Background Modes ,并且勾选 Audio, AirPlay, and Picture in Picture

目前仅支持 Android 和 iOS。

屏幕共享

目前仅支持 Web、macOS 和 Windows,暂不支持 Android 和 iOS。

重要信息

在 macOS 平台上你需要设置 AppGroup 并且作为参数在你调用 getScreenShareHelper 之前。

你可以参考 screen_sharing.dartApple doc

API

反馈

如果你有任何问题或建议,可以通过 issue 的形式反馈。

参与贡献

为了提升 SDK 的质量和易用性, 请参考我们的 贡献说明

相关资源

  • 你可以先参阅 常见问题
  • 如果你想了解更多官方示例,可以参考 官方 SDK 示例
  • 如果你想了解声网 SDK 在复杂场景下的应用,可以参考 官方场景案例
  • 如果你想了解声网的一些社区开发者维护的项目,可以查看 社区
  • 若遇到问题需要开发者帮助,你可以到 开发者社区 提问
  • 如果需要售后技术支持, 你可以在 Agora Dashboard 提交工单

代码许可

示例项目遵守 MIT 许可证。