native webrtc (mac) で audio の input device を変更する
既に存在する PeerConnectionFactory から変更する方法が変わらなかったので、とりあえず初期化の時に変更する方法
webrtc::AudioDeviceModule *adm = webrtc::CreateAudioDeviceModule(0, webrtc::AudioDeviceModule::kPlatformDefaultAudio); int ret = adm->Init(); NSAssert(ret == 0, @"failed init audio device modules"); for (int i = 0; i < adm->RecordingDevices(); i++) { char name[webrtc::kAdmMaxDeviceNameSize]; char guid[webrtc::kAdmMaxGuidSize]; int ret = adm->RecordingDeviceName(i, name, guid); NSAssert(ret == 0, @"failed RecordingDeviceName"); NSLog(@"%d %s %s", i, name, guid); } adm->SetRecordingDevice(...);
として AudioDeviceModule を初期化しこれを webrtc::CreatePeerConnectionFactory
に渡す必用がある。
RTCPeerConnectionFactory.mm のような wrapper を自分で書いちゃうのが早そう。