动态修改音频通信质量主要是通过调节音频编码器的目标码率来实现的,可以满足在不同的应用中使用不同通话质量的需求,如局域网或是网络带宽有保障的应用,可以采用较高的通话质量,而互联网则采用较低的通话质量来降低带宽占用。同时也可以动态修改音频通话质量,在较好质量和一般通话质量之间动态切换。该特性需要AnyChat Platform Core SDK V2.8.7以上的版本才能支持。
可通过BRAC_SetSDKOption接口来设置单声道,或是双声道模式下的音频通信质量,典型设置代码如下:
1.
DWORD
dwMonoBitrate = 15850;
2.
BRAC_SetSDKOption(BRAC_SO_AUDIO_MONOBITRATE,(
PCHAR
)&dwMonoBitrate,
sizeof
(
DWORD
));
3.
DWORD
dwStereoBitrate = 40000;
4.
BRAC_SetSDKOption(BRAC_SO_AUDIO_STEREOBITRATE,(
PCHAR
)&dwStereoBitrate,
sizeof
(
DWORD
));
上述示例代码设置了单声道模式下,音频编码的质量是:15.85kbps,双声道模式下,音频的编码质量是:40kbps,当SDK工作在单声道模式下时,单声道设置生效,当SDK工作在双声道模式下时,双声道设置生效。
AnyChat SDK默认是根据服务器的“AnyChatCoreServer.ini”配置文件里面的音频参数部分来确定是工作在单声道采集模式,或是双声道采集模式。当上层应用开启AnyChat SDK的音频自适应模式(默认是关闭状态)后,将根据音频工作模式来动态切换采集参数:
音频工作模式 | 采样率 | 采样位数 | 采样通道 | 默认质量 | 备注 |
发言模式 | 16000 | 16 | 1 | 15.85kbps | 单声道模式 |
放歌模式 | 44100 | 16 | 2 | 40kbps | 双声道模式 |
卡拉OK模式 | 44100 | 16 | 2 | 40kbps | 双声道模式 |
线路输入模式 | 44100 | 16 | 2 | 40kbps | 双声道模式 |
开启“音频自适应模式”的示例代码如下:
1.
//启用音频自动参数功能(默认关闭)
2.
DWORD
bAudioAutoParam = TRUE;
3.
BRAC_SetSDKOption(BRAC_SO_AUDIO_AUTOPARAM,(
PCHAR
)&bAudioAutoParam,
sizeof
(
DWORD
));
关于音频的工作模式可参考:185. 音频工作(采集)模式是什么?
注:不同的客户端可独立工作在不同的模式下,如:A客户端是关闭音频自适应模式(默认状态),B客户端启用音频自适应模式,这两个客户端程序均可正常工作。另外不论是关闭,或是开启音频自适应模式,均可动态调节音频编码的目标码率。
如何修改音频通信质量?