VideoViewController
AgoraVideoView 的控制器,用于渲染本地和远端视频。
Dart
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 。如果你想要使用 FlutterTexture ,则设置
useFlutterTexture的属性为 true。 - macOS 和 Windows:FlutterTexture 。
rtcEngine
canvas
本地视频显示属性。详见 VideoCanvas。
connection
Connection 信息。详见 RtcConnection。
useFlutterTexture
信息
FlutterTexture 仅适用于 iOS、macOS 和 Windows 平台。FlutterTexture 渲染视频: - true: 使用
FlutterTexture渲染视频。 - false: 不使用
FlutterTexture渲染视频。
useAndroidSurfaceView
信息
Android
SurfaceView 仅适用于 Android 平台。SurfaceView 渲染视频: - true: 使用 Android
SurfaceView渲染视频。 - false: 不使用 Android
SurfaceView渲染视频。