AnyChat技术支持论坛

标题: 音视频设备测试 [打印本页]

作者: zhangss    时间: 2013-9-25 15:41
标题: 音视频设备测试
测试视频设备时,有画面就是成功了。
不过测试音频时,想听到自己刚说的话,也就是自己的回音。怎么设置函数?

作者: admin    时间: 2013-9-25 15:52
您好,把回声消除关闭即可,参考:

  1. DWORD dwEnableEcho = 0;
  2. BRAC_SetSDKOption(BRAC_SO_AUDIO_ECHOCTRL, (char*)&dwEnableEcho, sizeof(DWORD));
复制代码

作者: zhangss    时间: 2013-9-25 18:31
用V4.8.SDK里面的DEMO测得。BRAC_SetSDKOption(BRAC_SO_AUDIO_ECHOCTRL, (char*)&dwEnableEcho, sizeof(DWORD));
此函数里面的dwEnableEcho全改成FALSE或者0.自己还是听不到自己说的话
作者: zhangss    时间: 2013-9-25 18:34
程序里含有BRAC_SetSDKOption(BRAC_SO_AUDIO_ECHOCTRL  的地方有两个,都改了的
作者: admin    时间: 2013-9-25 18:47
您好,您可以获取本地音量的大小来判断是否有采集到音频。
作者: zhangss    时间: 2013-9-25 19:08
我写的ActiveX控件.主界面不是我做的,由于界面不方便做,所以靠显示来判断有些难度。所以想用话筒里的回音,自己听一下是否有麦克风。不知这样能否实现,不行的话我再看看其他办法吧!
作者: admin    时间: 2013-9-25 19:24
您好,明白您的想法了,用AnyChat直接来实现一个测试录音设备是否可用的功能还不行,您可以自己调用windows提供的录音API:WaveInXXXX,录一个缓冲区,比如10s,录完之后再调用WaveOutXXX来播放缓冲区。
作者: zhangss    时间: 2013-9-27 10:40
DWORD BRAC_GetSpeakState(DWORD dwUserid, DWORD& dwState);
功能:查询用户音频设备采集状态
返回值:0表示成功,否则为出错代码
参数:
dwUserid 用户编号,为-1时表示获取自己的音频设备状态;
dwState 音频设备采集状态,开启音频采集返回1,否则返回0
备注:
这里所说的“音频设备采集状态”是指在SDK内部是否已开始音频采集,当返回值为1时,表示SDK已经开始采集,当有其它用户请求时,才对外传输。
SDK并不能获知用户是否已将麦克风接入声卡,估当用户没有接入麦克风时,就算SDK进行音频采集,也是无法采集到用户说话的声音的。


此函数在什么情况下,才会返回错误?一直没插入麦克风,SDK内部开始音频采集会报错么
作者: admin    时间: 2013-9-27 10:44
您好,这个函数只是查询声音采集的状态,与Mic是没有关系的,就算没有Mic,声卡还是可以的采集。

您的需求可以这样来实现,进入一个房间,打开本地音频设备,启用音频数据回调,在回调中将音频采样数据(PCM格式)保存,比如保存30秒,然后再播放出来,播放的接口可以调用Windows提供的API函数:WaveOutXXX来播放缓冲区。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3