调用recordStart的常见问题分析
recordStart有两个容易导致调用错误的重要参数,一个是要录制的视频流ID号,一个是要录制的音频流ID号。
本端要recordStart成功,要满足以下几个条件(仅讨论音视频流都要录制的情况):
(1)对端要anduioStart 和videoStart 实时采集到录制所需的音视频流。
(2)本端recordStart前要先anduioStart 和videoStart。
举个例子,当播放端开始调用recordStart的时候,有以下几种常用的录制失败的原因(仅讨论音视频流都要录制的情况)。
场景一:
采集端虽然audioStart 和videoStart 都调用了,但是采集端本身没有或不能采集到音频流或视频流。
结果:
播放端调用record返回值是0,但是生成的文件是空的或无法播放端的。
原理分析:
因为播放端要录制音视频的时候,是需要同时有音频,视频两个数据才能写成一个文件的。
如果缺了其中一个流,就会一直等待缺失的流,如果一直等不到缺失的流,就会生成空文件。
场景二:
播放端没有调用audioStart或videoStart,就开始recordStart。
结果:
播放端调用recordStart的返回值是5。
原理分析:
recordStart所填入的音视频对象没有生成,所以报错5(无效的对象)。
场景三:
播放端的audioStart或videoStart的音视频流ID和recordStart的音频频ID不一致。
结果:
播放端调用recordStart的返回值是5。
原理分析:
recordStart所填入的音视频对象没有生成,所以报错5(无效的对象)。
场景四:
采集端的audioStart或videoStart的音视频流ID和播放端recordStart的音视频流ID不一致
结果:
播放端调用record返回值是0,但是生成的文件是空的或无法播放端的。
原理分析:
因为播放端要录制音视频的时候,是需要同时有音频,视频两个数据才能写成一个文件的。
如果缺了其中一个流,就会一直等待缺失的流,如果一直等不到缺失的流,就会生成空文件。