onFirstRemoteVideoFrameDecoded method
FutureOr<void>
onFirstRemoteVideoFrameDecoded(
- dynamic streamId,
- dynamic streamInfo,
- dynamic frameInfo
override
@detail callback
@author zhushufan.ref
@brief 订阅端接收并解码远端视频流首帧时,收到此回调。包含以下情况:
1. 发布端发布视频,包含首次发布和取消后再次发布。
2. 发布端关闭视频采集后,再次打开采集。使用外部源时,停止推流后再次推流。
3. 发布端发布视频后,订阅端取消订阅视频后,又再次订阅视频。
@param streamId 远端流 ID
@param streamInfo 远端流信息, 详见 StreamInfo{@link #StreamInfo}
@param frameInfo 视频帧信息,参看 VideoFrameInfo{@link #VideoFrameInfo}
@note
- 用户刚收到房间内订阅的每一路视频流时,都会收到该回调。
- 摄像头流、屏幕流,内部采集、外部源,自动订阅和手动订阅的视频流,都符合上述策略。
Implementation
FutureOr<void> onFirstRemoteVideoFrameDecoded(
dynamic streamId, dynamic streamInfo, dynamic frameInfo) async {
if ($instance == null || $instance is! IRTCEngineEventHandler) {
return;
}
return ($instance as IRTCEngineEventHandler)
.onFirstRemoteVideoFrameDecoded
?.call(
streamId.toString(),
packObject(
streamInfo,
() => StreamInfo.fromMap(StreamInfo.deepPackedMapValues(
StreamInfo.mapMemberToConstructorParams(streamInfo)))),
packObject(
frameInfo,
() => VideoFrameInfo.fromMap(VideoFrameInfo.deepPackedMapValues(
VideoFrameInfo.mapMemberToConstructorParams(frameInfo)))));
}