如何利用音视频的API接口控制音量

     AnyChat SDK是一套多媒体即时通讯平台库,大部分需要用到音视频交互的系统都可以采用AnyChat SDK来开发。AnyChat SDK内部封装了音视频的采集、编码、传输、解码以及播放(显示)功能,只需要几个简单的API调用,即可实现多个用户之间的语音、视频、文字交互,由于内核已经实现了P2P网络,所以上层应用不需要关心复杂的网络传输问题,简化了上层应用的开发难度,上层应用的开发人员可以把更多的精力投入到业务流程、用户体验等方面,实现应用系统的快速开发。

     AnyChat提供了音量控制的API接口(BRAC_AudioGetVolume、BRAC_AudioSetVolume),定义如下:

// 音频设备定义 
02.enum BRAC_AudioDevice{ 
03.    BRAC_AD_WAVEIN = 0, ///< 输入设备:Mic 
04.    BRAC_AD_WAVEOUT,    ///< 输出设备:Wave 
05.}; 
06.// 获取指定音频设备的当前音量 
07.DWORD BRAC_AudioGetVolume(BRAC_AudioDevice device, DWORD& dwVolume); 
08.// 设置指定音频设备的音量 
09.DWORD BRAC_AudioSetVolume(BRAC_AudioDevice device, DWORD dwVolume);

其中第一个参数是指需要获取(或设置)的音量类型,如控制录音音量(BRAC_AD_WAVEIN)或是控制播放音量(BRAC_AD_WAVEOUT)。

默认情况下,调用前面的音量控制API接口将是控制系统全局的音量(*),如希望实现当前应用程序的音量控制不影响系统全局的音量,则可通过API切换到软件音量控制模式(初始化SDK成功之后调用,该功能为V4.4.1版本新增):

// 设置软件音量模式控制(参数为int型,1打开,0关闭[默认]) 
2.#define BRAC_SO_AUDIO_SOFTVOLMODE   73 
3.  
4.DWORD dwSoftVolMode = 1; 
5.BRAC_SetSDKOption(BRAC_SO_AUDIO_SOFTVOLMODE,(const char*)&dwSoftVolMode, sizeof(DWORD));

使用软件音量控制模式的优点在于控制当前应用程序的音量时不影响其它程序的音量,典型的应用如:用户一边看电影一边使用AnyChat进行通话,默认模式下,用户调低AnyChat的播放音量时,同时也会将电影的音量调低,如果使用软件音量控制模式,则不会影响播放电影的音量。

(*注:Win7操作系统播放音量是应用程序分开设置的,其它操作系统如Windows XP等是系统全局控制)

 

你可能感兴趣的:(音视频开发,音量控制)