本文介绍如何通过修改集成方式来加快视频首帧出图。如需更多协助,请联系技术支持。
本地用户看到远端用户的过程实质上为本地用户对每帧远端视频帧的接收、解码、渲染。为加快本地用户看到远端用户的视频,你需要缩短远端视频的首帧在本地用户应用界面的视窗中开始渲染的时间。因此,声网建议你在本地用户渲染远端视频前就为远端视频创建了视图,以避免推迟出图。具体做法如下:
远端用户加入频道前:你可以事先知晓远端用户 ID,随后立即调用 setupRemoteVideo
初始化远端视图。如果你无法事先知晓远端用户 ID,你可以从 onUserJoined
回调中获取远端用户 ID 后再调用 setupRemoteVideo
,但这种做法可能会推迟出图。
远端用户加入频道后:SDK 会先后触发 onUserJoined
和 onFirstRemoteVideoDecoded
回调。直到本地用户收到 onFirstRemoteVideoDecoded
回调前,远端视频帧还没有开始解码。因此,在这段时间,你初始化的远端视图上都无图,本地用户会觉得等待远端视频的时间过长。为减少用户心理上的等待时间,你可以在无图时期给远端视图添加一张表示视频正在载入的图片。
切换频道时,如果用户依次调用 leaveChannel
和 joinChannel
,SDK 内部会有媒体引擎的销毁和创建的操作,需要花费一定时间。声网建议通过 switchChannel
切换频道,缩短用户切换频道的时间,从而使其他用户可以更快看到该用户的视频。
如果你在 SDK 的回调线程中添加耗时操作,会增加 SDK 事件通知的延时。比如说,你会更晚收到 onUserJoined
回调,使得你通过回调获取远端用户 ID 的时间更久,从而导致创建远端视图更慢。因此,声网强烈建议你不在 SDK 的回调线程中添加耗时操作。