rtcEngine$onFirstRemoteVideoFrameDecoded$info$withFrameInfo method
FutureOr<void>
rtcEngine$onFirstRemoteVideoFrameDecoded$info$withFrameInfo(
- dynamic engine,
- dynamic streamId,
- dynamic info,
- dynamic frameInfo,
override
@detail callback
@author zhushufan.ref
@brief 订阅端接收并解码远端视频流首帧后,收到此回调。包含以下情况:
1. 发布端发布视频,包含首次发布和取消后再次发布。
2. 发布端关闭视频采集后,再次打开采集。使用外部源时,停止推流后再次推流。
3. 发布端发布视频后,订阅端取消订阅视频后,又再次订阅视频。
@param engine ByteRTCEngine 对象
@param streamId 远端流 ID。
@param info 远端流信息,参看 ByteRTCStreamInfo{@link #ByteRTCStreamInfo}。
@param frameInfo 视频帧信息,参看 ByteRTCVideoFrameInfo{@link #ByteRTCVideoFrameInfo}
@note
- 对于主流,进入房间后,仅在发布端第一次发布的时候,订阅端会收到该回调,此后不受重新发布的影响,只要不重新加入房间,就不会再收到该回调。
- 对于屏幕流,用户每次重新发布屏幕视频流在订阅端都会重新触发一次该回调。
Implementation
FutureOr<void> rtcEngine$onFirstRemoteVideoFrameDecoded$info$withFrameInfo(
dynamic engine, dynamic streamId, dynamic info, dynamic frameInfo) async {
if ($instance == null || $instance is! IRTCEngineEventHandler) {
return;
}
return ($instance as IRTCEngineEventHandler)
.onFirstRemoteVideoFrameDecoded
?.call(
streamId.toString(),
packObject(
info,
() => StreamInfo.fromMap(StreamInfo.deepPackedMapValues(
StreamInfo.mapMemberToConstructorParams(info)))),
packObject(
frameInfo,
() => VideoFrameInfo.fromMap(VideoFrameInfo.deepPackedMapValues(
VideoFrameInfo.mapMemberToConstructorParams(frameInfo)))));
}