1.需求:一对一上课,要求老师的白板笔迹自定义消息和音频完全同步。 (我们的笔迹消息是自己的服务,不能换。)
2.平台:暂时只做windows C# 、安卓端。
3.问题: 下面几个方案发现都有问题!最后没法上线。
方案1: sendSEIMsg:
这个很好。但有个重要问题! ------有时主讲老师是关闭摄像头的,这个消息不能插到音频里,有一个人没开摄像头就没法用。
线上教学,很多时候老师写字或者演示临时关闭摄像头,有的孩子也不开。所以这个功能测试可以,一上线就没用了。
方案2,sendCustomCmdMsg:
这个发信令的吧,不能精确对齐。
方案3:TRTCStatistics.rrt+TRTCStatistics.jitterBufferDelay计算
获取和音频的往返延迟,然后再加上播放延迟。
这个方案不错。 但最新的win c#sdk 中根本没有jitterBufferDelay字段.
我看GitHub的sdk更新日志说已经有了,但是我重新下载,还是没有这个字段。
而且还有个问题:我用设备实测延迟大约是400ms(同一地区两人通话),安卓端我用这两个字段计算,才200ms,还有200ms多去哪了,是不是还有采集延迟啥的。
方案4 :onCapturedAudioFrame, onPlayAudioFrame,
在这两个回调中,拿到音频时间戳,然后同时把时间戳打到我的自定义消息上,再接收端重新计算。
这个方案没啥功能问题,但是和方案3一样,和实际延迟不符,实测差200ms,应该还是缺少一个播放或者采集延迟?
方案5:换 声 网:
他们的api,手机 pc web端 都有api获取的采集、发送、接收、播放的延迟报告。
但问题是,他们没有完整的c#的sdk,我门没有c++的技术,pc端是线上教学最重要的一端,也放弃。
所以咨询如何解决,或者其他方案。
或者能否开一个获取全程总延迟的api?
相似问题