12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import 'dart:collection';
- import 'package:fis_common/event/event_type.dart';
- import 'package:fis_lib_media_rt/interface/player.dart';
- import 'package:fis_lib_media_rt/interface/publisher.dart';
- import 'member.dart';
- /// 会话房间接口
- abstract class IRoom {
- /// 房间号
- String get roomId;
- /// 远端成员集合
- UnmodifiableListView<IMember> get remoteMembers;
- /// 本地成员
- IMember get localMember;
- /// 是否已进入房间
- bool get isEntered;
- /// 成员加入事件
- late final FEventHandler<IMember> memberJoined;
- /// 成员离开事件
- late final FEventHandler<IMember> memberLeaved;
- /// 已退出房间事件
- late final FEventHandler<void> exited;
- /// 已进入房间事件
- late final FEventHandler<void> entered;
- /// 错误发送事件
- late final FEventHandler<Object> errorOccurred;
- /// 装载本地成员
- void loadLocalMember(ILocalMemberParams params);
- /// 进入房间
- Future<void> enter();
- /// 退出房间
- Future<void> exit();
- /// 开启屏幕共享
- Future<void> startScreenCapture(String userId, String userSign);
- /// 关闭屏幕共享
- Future<void> stopScreenCapture();
- /// 截取某位成员的视频帧
- ///
- /// [userId] `null`表示截屏本地视频。对于本地视频,只能截取摄像头图像(TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG)。
- ///
- /// [streamType] 视频流类型。支持相机图片(TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG)和屏幕分享图片(TRTCCloudDef#TRTC_VIDEO_STREAM_TYPE_SUB)。
- ///
- /// [sourceType] 视频图像源,可以是视频流图像(TRTCSnapshotSourceTypeStream,一般为较高清晰度),也可以是视频渲染图像(TRTCSnapshotSourceTypeView)
- ///
- /// [path] 图片保存路径,支持 PNG 和 JPEG 格式,需要精确到后缀,且确保可访问。
- Future<void> captureVideoFrame(
- String? userId,
- int streamType,
- int sourceType,
- String path,
- );
- /// 将指定成员踢出房间(权限限制)
- ///
- /// [memberId] 成员ID
- Future<void> kickMember(String memberId);
- /// 创建
- IPublisher createPublisher();
- /// 创建播放器
- IPlayer createPlayer();
- }
|