API 索引
本页列出 Flutter 所有的接口类以及其中包含的 API。
RtcEngine
RTC SDK 的基础接口类,实现实时音视频的主要功能。
RtcEngine 提供了 App 调用的主要方法。
在调用其他 API 之前,必须先调用 createAgoraRtcEngine 创建 RtcEngine 对象。
RtcEngineEx
提供多频道方法的接口类。
继承自 RtcEngine。
相关参考RtcEngineEventHandler
接口类 RtcEngineEventHandler
用于 SDK 向 App 发送事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。
该接口类的所有方法都有缺省(空)实现, App 可以根据需要只继承关心的事件。
- 在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如
sendMessage
),否则可能影响 SDK 的运行。 - SDK 不再捕获开发者在 RtcEngineEventHandler 类回调中自行实现的代码逻辑中的异常。你需要自行处理该异常,否则异常出现时可能引起 App 崩溃。
MediaPlayer
提供媒体播放器功能的类,支持多实例。
相关参考AudioEncodedFrameObserver
编码后音频的观测器。
相关参考AudioDeviceManager
音频设备管理方法。
相关参考VideoDeviceManager
视频设备管理方法。
相关参考MediaEngine
MediaEngine
类。
MediaPlayerCacheManager
该类提供管理媒体播放器中缓存媒体文件的方法。
相关参考MediaPlayerSourceObserver
提供媒体播放器的回调。
相关参考AudioFrameObserver
音频观测器。
你可以调用 registerAudioFrameObserver 注册或取消注册 AudioFrameObserver 音频观测器。
AudioFrameObserverBase
音频观测器。
你可以调用 registerAudioFrameObserver 注册或取消注册 AudioFrameObserverBase 音频观测器。
相关参考DirectCdnStreamingEventHandler
DirectCdnStreamingEventHandler
接口类用于 SDK 向 App 发送 CDN 推流的事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。
AudioSpectrumObserver
音频频谱观测器。
相关参考MetadataObserver
Metadata 观测器。
相关参考VideoEncodedFrameObserver
用于接收编码后的视频图像的类。
相关参考VideoFrameObserver
视频观测器。
你可以调用 registerVideoFrameObserver 注册或取消注册 VideoFrameObserver 视频观测器。
相关参考BaseSpatialAudioEngine
该类包含 LocalSpatialAudioEngine
类中的部分 API。
LocalSpatialAudioEngine 类继承自 BaseSpatialAudioEngine。
相关参考LocalSpatialAudioEngine
该类通过 SDK 计算用户坐标,实现空间音频。
该类继承自 BaseSpatialAudioEngine。调用该类下其他 API 前,你需要调用 initialize 方法初始化该类。
相关参考MediaRecorder
提供本地及远端音视频录制功能的类。
相关参考MediaRecorderObserver
包含音视频录制的事件。
相关参考MediaPlayerAudioFrameObserver
媒体播放器的音频数据观测器。
你可以调用 registerAudioFrameObserver 注册或取消注册 MediaPlayerAudioFrameObserver 观测器。
MediaPlayerVideoFrameObserver
媒体播放器的视频数据观测器。
你可以调用 registerVideoFrameObserver 注册或取消注册 MediaPlayerVideoFrameObserver 观测器。
MusicContentCenter
MusicContentCenter
接口类提供音乐内容中心的相关方法。该接口类下的方法仅适用于 Android 和 iOS 平台。
MusicContentCenterEventHandler
MusicContentCenterEventHandler
接口类,用于 SDK 向客户端发送音乐内容中心事件通知。
MusicPlayer
继承自 MediaPlayer
类,提供音乐播放器的相关方法。
RtcEngineExt
RtcEngine
的衍生接口类。
AgoraVideoView
AgoraVideoView
类,用于渲染本地和远端视频。
class AgoraVideoView extends StatefulWidget {
const AgoraVideoView({
Key? key,
required this.controller,
}) : super(key: key);
final VideoViewControllerBase controller;
State<AgoraVideoView> createState() => AgoraVideoViewState();
}
key
Widget
的标识符。详见 Flutter 官方文档关于 key 对象的描述。controller
- 如果渲染 RtcEngine 的视频,详见 VideoViewController。
- 如果渲染媒体播放器中的视频,详见 MediaPlayerController。
MediaPlayerController
AgoraVideoView
的控制器,用于渲染媒体播放器的视频。
abstract class MediaPlayerController
implements MediaPlayer, VideoViewControllerBase {
factory MediaPlayerController(
{required RtcEngine rtcEngine,
required VideoCanvas canvas,
RtcConnection? connection,
bool useFlutterTexture = false,
bool useAndroidSurfaceView = false}) =>
MediaPlayerControllerImpl(
rtcEngine,
canvas,
connection,
useFlutterTexture,
useAndroidSurfaceView,
);
Future<void> initialize();
}
rtcEngine
canvas
useFlutterTexture
FlutterTexture
渲染视频: true
: 使用FlutterTexture
渲染视频。false
: 不使用FlutterTexture
渲染视频。
FlutterTexture
仅适用于 iOS、macOS 和 Windows 平台。useAndroidSurfaceView
SurfaceView
渲染视频: true
: 使用 AndroidSurfaceView
渲染视频。false
: 不使用 AndroidSurfaceView
渲染视频。
SurfaceView
仅适用于 Android 平台。VideoViewController
AgoraVideoView
的控制器,用于渲染本地和远端视频。
class VideoViewController
with VideoViewControllerBaseMixin
implements VideoViewControllerBase {
VideoViewController({
required this.rtcEngine,
required this.canvas,
this.useFlutterTexture = false,
this.useAndroidSurfaceView = false,
}) : connection = const RtcConnection();
VideoViewController.remote({
required this.rtcEngine,
required this.canvas,
required this.connection,
this.useFlutterTexture = false,
this.useAndroidSurfaceView = false,
}) : assert(connection.channelId != null);
final RtcEngine rtcEngine;
final VideoCanvas canvas;
final RtcConnection connection;
final bool useFlutterTexture;
final bool useAndroidSurfaceView;
int getVideoSourceType() {
return canvas.uid! == 0
? VideoSourceType.videoSourceCamera.value()
: VideoSourceType.videoSourceRemote.value();
}
}
- Android: https://developer.android.com/reference/android/view/TextureView。如果你想要使用 SurfaceView,则设置
useAndroidSurfaceView
的属性为true
。 - iOS: UIView。 如果你想要使用 Flutter Texture,则设置
useFlutterTexture
的属性为true
。 - macOS 和 Windows:FlutterTexture。
rtcEngine
canvas
connection
useFlutterTexture
FlutterTexture
渲染视频: true
: 使用FlutterTexture
渲染视频。false
: 不使用FlutterTexture
渲染视频。
FlutterTexture
仅适用于 iOS、macOS 和 Windows 平台。useAndroidSurfaceView
SurfaceView
渲染视频: true
: 使用 AndroidSurfaceView
渲染视频。false
: 不使用 AndroidSurfaceView
渲染视频。
SurfaceView
仅适用于 Android 平台。