Subscribed unsubscribe Subscribe Subscribe

native webrtc (mac) で audio の input device を変更する

tech

既に存在する 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 を自分で書いちゃうのが早そう。