動態修改音頻通信質量主要是通過調節音頻編碼器的目標碼率來實現的,可以滿足在不同的應用中使用不同通話質量的需求,如局域網或是網絡帶寬有保障的應用,可以採用較高的通話質量,而互聯網則採用較低的通話質量來降低帶寬佔用。同時也可以動態修改音頻通話質量,在較好質量和一般通話質量之間動態切換。該特性需要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客戶端啓用音頻自適應模式,這兩個客戶端程序均可正常工作。另外不論是關閉,或是開啓音頻自適應模式,均可動態調節音頻編碼的目標碼率。