近期技术人员从宇视官网下载sdk进行二次开发时,在启动实时直播,并通过回调函数拿到流数据,发现没有音频流数据。
通过下面的数据发现,codeType此字段一直是28,代表的是H.264数据,但未没发现有音频的数据包。
分析问题:
1、首先从文档中查看,sdk拉实时流的数据,是通过NETDEV_RealPlay函数开始拉流的,文档代码如下:
2、设置流数据的回调是拼帧后的视频回调:NETDEV_SetPlayParseCB,而拼帧后的音频回调为:NETDEV_SetPlayParseAudioCB,使用如下:
3、假设根据此设置是可以拿到音频数据的,但当前是有视频数据,没有音频数据回调。
4、再次进入设备后台查看是否有音频播放;
5、最终验证是有音频播放的,就说明有音频数据,只是某处设置错误或者没有设置开启音频;
6、最终排查发现,进入设备的后台管理中的音频选项,有是否开启音频选项。
解决步骤:
1、设置音频开启,并点击保存:
2、开启音频,再尝试音频的回调是否有数据过来;
3、由上图显示codeType为65543代表音频数据,音频数据编码是G711A,即可解决该问题。
目前旭帆科技所有的视频平台,集成的都是EasyPlayer.js版流媒体播放器,EasyPlayer.js支持全平台、全终端播放,如Windows、Linux、Android、iOS,无需安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。EasyPlayer播放器系列依赖其灵活控制、低延时、高稳定的特点,已经成熟运用于多个项目场景当中,其中包括手机直播、电脑桌面直播等。感兴趣的用户可以自行下载测试。