webrtc native开发-麦克风设置

匿名 (未验证) 提交于 2019-12-03 00:36:02

rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory(     rtc::Thread* network_thread,     rtc::Thread* worker_thread,     rtc::Thread* signaling_thread,     AudioDeviceModule* default_adm,     cricket::WebRtcVideoEncoderFactory* encoder_factory,     cricket::WebRtcVideoDecoderFactory* decoder_factory)

其中第四个参数为AudioDeviceModule类型的指针变量,AudioDeviceModule类包括了webrtc中所用到的几乎所有的音频采集的接口。当该参数传NULL时,webrtc会在内部建立一个AudioDeviceModule的对象,而对麦克风的设置都为默认值。如果需要对麦克风进行设置,则可以定义一个AudioDeviceModule类型的指针变量,通过调用一系列的接口进行麦克风功能的设置,使用之前记得将头文件引用进来即可:

#include "webrtc/modules/audio_device/include/audio_device.h"

下面给出一段麦克风的枚举、选择以及音量设置的完整代码:

rtc::scoped_refptr<webrtc::AudioDeviceModule> audio2; audio2 = webrtc::AudioDeviceModule::Create(0, webrtc::AudioDeviceModule::kPlatformDefaultAudio); audio2->Init(); int num; int ret; bool is_mute = true; num = audio2->RecordingDevices();//列举麦克风设备数量 printf("Input devices: %d\n", num); //枚举麦克风设备 for (int i = 0; i<num; i++) { 	char name[webrtc::kAdmMaxDeviceNameSize]; 	char guid[webrtc::kAdmMaxGuidSize]; 	int ret = audio2->RecordingDeviceName(i, name, guid); 	if (ret != -1) { 		printf("麦克风:%s\n",name); 	} } ret = audio2->SetRecordingDevice(0);//选择麦克风 audio2->SetMicrophoneVolume(20);//设置音量 audio2->SetMicrophoneMute(is_mute);//设置是否静音 audio2->InitRecording(); 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!