无法使用AudioObjectGetPropertyData

我正在使用相同的耳机在macOS中设置离线音频播放和录制功能,以进行播放和录制。为了获取活动设备ID以及播放和录制的默认设备ID,我使用了核心音频框架fn AudioObjectGetPropertyData,它可以正确检测播放deviceID,但会抛出错误“ HALC_ShellDriverPlugIn :: Open:无法获取记录设备ID的指向Open例程的指针”和“ AudioObjectGetPropertyData:没有具有给定ID的对象”

AudioObjectPropertyAddress   prAddress;
AudioObjectID def_input_id;

        prAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice;
         prAddress.mScope    = kAudioObjectPropertyScopeGlobal;
         prAddress.mElement  = kAudioObjectPropertyElementMaster;
         size_l = sizeof(AudioObjectID);

/*To get the def_input_id*/
         err = AudioObjectGetPropertyData(kAudioObjectSystemObject,&prAddress,NULL,&size_l,&def_input_id);

         printf("Final value of def_put_id = %d\n",def_output_id);

/*to detect the device name from def_input_id*/
         prAddress.mSelector = kAudioDevicePropertyDeviceName;
         prAddress.mScope = kAudioObjectPropertyScopeGlobal;
         prAddress.mElement = kAudioObjectPropertyElementMaster;
         size_l = sizeof(aud_dev_info.cap_dev_to_use);


         err = AudioObjectGetPropertyData(def_input_id,aud_dev_info.cap_dev_to_use);

/* For play ID,I replace kAudioHardwarePropertyDefaultInputDevice with kAudioHardwarePropertyDefaultOutputDevice and 'def_input_id' to 'def_output_id'

预期:def_input_id的最终值= 40(一些非零值)

获得:HALC_ShellDriverPlugIn :: Open:无法获得指向Open例程的指针           def_input_id的最终值= 0

      play_rec_mac_app[39589:3393106]  AudioObjectGetPropertyData: no object with given ID 0
yychuan123456 回答:无法使用AudioObjectGetPropertyData

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3154363.html

大家都在问