人声与歌曲同步介绍
因为本地人声采集的 jitter buffer、歌曲播放混音的 jitter buffer 以及声音播放到人耳到歌唱存在有一定的 GAP 的,所以演唱者完全对着歌词和 BGM 播放时候,在远端观众感觉 BGM 播放、人声、歌词是有一定的延迟的。合唱方案在 TRTC SDK 内部使用了使用低延迟的 AAudio 采集,具体只需要在进房后开启合唱模式与低延时模式。
具体代码实现
开启合唱模式
// 主实例(人声实例)开启合唱模式(调低缓冲区间、音频冗余保护)mTRTCCloud.callExperimentalAPI("{\\"api\\":\\"enableChorus\\",\\"params\\":{\\"enable\\":1,\\"audioSource\\":0}}");// 子实例(伴奏实例)开启合唱模式(调低缓冲区间、音频冗余保护)subCloud.callExperimentalAPI("{\\"api\\":\\"enableChorus\\",\\"params\\":{\\"enable\\":1,\\"audioSource\\":1}}");
说明:
开启合唱模式的实验性接口 enableChorus 的参数设置:
audioSource:0(人声)。
audioSource:1(伴奏)。
开启低延时模式(高性能音频 AAudio)
// 主实例(人声实例)开启高性能音频 AAudiomTRTCCloud.callExperimentalAPI("{\\"api\\":\\"setLowLatencyModeEnabled\\",\\"params\\":{\\"enable\\":1}}");// 子实例(伴奏实例)开启高性能音频 AAudiosubCloud.callExperimentalAPI("{\\"api\\":\\"setLowLatencyModeEnabled\\",\\"params\\":{\\"enable\\":1}}");