音视频通讯SDK API参考手册  Windows 1.6.0
tencent::av::AVAudioCtrl类 参考abstract

音频控制器的封装类。 更多...

#include <av_audio_ctrl.h>

Public 类型

enum  AudioDataSourceType {
  AUDIO_DATA_SOURCE_MIC = 0, AUDIO_DATA_SOURCE_MIXTOSEND = 1, AUDIO_DATA_SOURCE_SEND = 2, AUDIO_DATA_SOURCE_MIXTOPLAY = 3,
  AUDIO_DATA_SOURCE_PLAY = 4, AUDIO_DATA_SOURCE_NETSTREM = 5, AUDIO_DATA_SOURCE_END = 6
}
 音频数据输入和输出类型。 更多...
 
typedef int(* AudioDataCallback) (AudioFrame *audio_frame, AudioDataSourceType src_type, void *custom_data)
 音频数据回调函数定义。 更多...
 

Public 成员函数

virtual ~AVAudioCtrl ()
 析构函数。 更多...
 
virtual bool EnableBoost (bool is_enable)=0
 打开/关闭自动增益调节。 更多...
 
virtual bool IsBoostEnable ()=0
 自动增益调节是否打开。 更多...
 
virtual bool EnableNS (bool is_enable)=0
 打开/关闭降噪。 更多...
 
virtual bool IsNSEnable ()=0
 降噪是否打开。 更多...
 
virtual bool EnableAEC (bool is_enable)=0
 打开/关闭回声消除。 更多...
 
virtual bool IsAECEnable ()=0
 回声消除是否打开。 更多...
 
virtual std::string GetQualityTips ()=0
 获取通话中实时音频质量相关信息,业务侧可以不用关心,主要用来查看通话情况、排查问题等。 更多...
 
virtual int RegistAudioDataCallback (AudioDataSourceType src_type, AudioDataCallback callback, void *custom_data)=0
 注册具体数据类型的回调函数。 更多...
 
virtual int UnregistAudioDataCallback (AudioDataSourceType src_type)=0
 反注册具体数据类型的回调函数。 更多...
 
virtual int UnregistAudioDataCallbackAll ()=0
 反注册所有回调函数。 更多...
 
virtual int SetAudioDataFormat (AudioDataSourceType src_type, AudioFrameDesc audio_desc)=0
 设置某类型的音频格式参数。 更多...
 
virtual int GetAudioDataFormat (AudioDataSourceType src_type, AudioFrameDesc &audio_desc)=0
 获取某类型的音频格式参数。 更多...
 
virtual int SetAudioDataVolume (AudioDataSourceType src_type, float volume)=0
 设置某类型的音频音量。 更多...
 
virtual int GetAudioDataVolume (AudioDataSourceType src_type, float *volume)=0
 获取某类型的音频音量。 更多...
 

详细描述

由SDK在进入房间后创建。用户通过AVContext获取此类,无法自己直接实例化此类。

备注

成员类型定义说明

typedef int(* tencent::av::AVAudioCtrl::AudioDataCallback) (AudioFrame *audio_frame, AudioDataSourceType src_type, void *custom_data)

通过回调函数,来通知外部读取或者写入具体类型的音频数据。

参数
[in]audio_frame音频数据,输出数据类型从此参数读取数据,输入数据类型将数据写入此参数。
[in]src_type音频数据类型。
[in]custom_data用户自定义回调数据。

对于输出音频数据,AudioFrame::data指向音频数据buffer, AudioFrame::data_size表示音频数据大小。 对于输入音频数据,AudioFrame::data指向数据缓冲区, 用户将音频数据写入缓冲区, AudioFrame::data_size表示数据缓冲区总大小, 用户需改写为输入音频数据实际大小。 回调处理要求是非阻塞的,SDK回调时间间隔稳定在20ms左右, 在回调中阻塞过长时间会导致声音异常等问题。 SDK通过回调返回值来判断数据处理是否成功输。处理成功请返回 AV_OK,否则返回 AV_ERR_FAILED。

备注
回调函数设定为专门处理数据用。函数回调在非主线程,请确保线程安全。特别是不要在回调函数中直接调用SDK接口。

成员枚举类型说明

枚举值
AUDIO_DATA_SOURCE_MIC 
AUDIO_DATA_SOURCE_MIXTOSEND 

获取本地麦克风采集的音频数据。

AUDIO_DATA_SOURCE_SEND 

输入额外的音频数据,与本地发送的音频数据混音后发送出去。

AUDIO_DATA_SOURCE_MIXTOPLAY 

发送方最终发送出去的音频数据。

AUDIO_DATA_SOURCE_PLAY 

输入额外的音频数据,与本地播放的音频数据混音后给扬声器播放出来。

AUDIO_DATA_SOURCE_NETSTREM 

获取本地扬声器播放音频数据。

AUDIO_DATA_SOURCE_END 

接收方收到的音频数据。

构造及析构函数说明

virtual tencent::av::AVAudioCtrl::~AVAudioCtrl ( )
virtual

成员函数说明

virtual bool tencent::av::AVAudioCtrl::EnableAEC ( bool  is_enable)
pure virtual

同步返回结果。主要用于消除输入音频流的回声。

参数
[in]is_enable是否打开。
返回
true表示成功,false表示失败。
virtual bool tencent::av::AVAudioCtrl::EnableBoost ( bool  is_enable)
pure virtual

同步返回结果。开关打开时,SDK会自动控制采集的音量,调节到一个合适的范围。

参数
[in]is_enable是否打开。
返回
true表示成功,false表示失败。
备注
. 这个方法不等同于软件麦克风增强,不一定会增加采集的音量。
virtual bool tencent::av::AVAudioCtrl::EnableNS ( bool  is_enable)
pure virtual

同步返回结果。主要用于降低输入音频流的环境噪音。

参数
[in]is_enable是否打开。
返回
true表示成功,false表示失败。
virtual int tencent::av::AVAudioCtrl::GetAudioDataFormat ( AudioDataSourceType  src_type,
AudioFrameDesc audio_desc 
)
pure virtual
参数
[in]src_type音频数据类型。
[out]audio_desc音频数据的格式。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
无。
virtual int tencent::av::AVAudioCtrl::GetAudioDataVolume ( AudioDataSourceType  src_type,
float *  volume 
)
pure virtual
参数
[in]src_type音频数据类型。
[out]volume音量 (范围 0-1)。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
没有注册对应类型的callback无法设置音量。
virtual std::string tencent::av::AVAudioCtrl::GetQualityTips ( )
pure virtual
返回
以字符串形式返回音频相关的质量参数。
virtual bool tencent::av::AVAudioCtrl::IsAECEnable ( )
pure virtual
返回
true表示打开,false表示关闭。
virtual bool tencent::av::AVAudioCtrl::IsBoostEnable ( )
pure virtual
返回
true表示打开,false表示关闭。
virtual bool tencent::av::AVAudioCtrl::IsNSEnable ( )
pure virtual
返回
true表示打开,false表示关闭。
virtual int tencent::av::AVAudioCtrl::RegistAudioDataCallback ( AudioDataSourceType  src_type,
AudioDataCallback  callback,
void *  custom_data 
)
pure virtual
参数
[in]src_type音频数据类型。
[in]callback用户自定义的回调函数地址。
[in]custom_data用户自定义回调数据。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
无。
virtual int tencent::av::AVAudioCtrl::SetAudioDataFormat ( AudioDataSourceType  src_type,
AudioFrameDesc  audio_desc 
)
pure virtual
参数
[in]src_type音频数据类型。
[in]audio_desc音频数据的格式。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
会直接影响callback传入的AudioFrame的格式。
virtual int tencent::av::AVAudioCtrl::SetAudioDataVolume ( AudioDataSourceType  src_type,
float  volume 
)
pure virtual
参数
[in]src_type音频数据类型。
[in]volume音量 (范围 0-1)。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
没有注册对应类型的callback会直接返回AV_ERR_FAILED。
virtual int tencent::av::AVAudioCtrl::UnregistAudioDataCallback ( AudioDataSourceType  src_type)
pure virtual
参数
[in]src_type音频数据类型。
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
无。
virtual int tencent::av::AVAudioCtrl::UnregistAudioDataCallbackAll ( )
pure virtual
返回
成功返回AV_OK, 否则返回AV_ERR_FAILED。
备注
无。