diff options
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/mac/audio_manager_mac.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc index a921dfb..ee5943a 100644 --- a/media/audio/mac/audio_manager_mac.cc +++ b/media/audio/mac/audio_manager_mac.cc @@ -10,11 +10,21 @@ #include "media/audio/mac/audio_output_mac.h" bool AudioManagerMac::HasAudioDevices() { - AudioDeviceID output_device_id = 0; - size_t size = sizeof(output_device_id); - OSStatus err = AudioHardwareGetProperty( - kAudioHardwarePropertyDefaultOutputDevice, &size, &output_device_id); - return ((err == noErr) && (output_device_id > 0)); + AudioDeviceID output_device_id = kAudioObjectUnknown; + AudioObjectPropertyAddress property_address = { + kAudioHardwarePropertyDefaultOutputDevice, // mSelector + kAudioObjectPropertyScopeGlobal, // mScope + kAudioObjectPropertyElementMaster // mElement + }; + size_t output_device_id_size = sizeof(output_device_id); + OSStatus err = AudioObjectGetPropertyData(kAudioObjectSystemObject, + &property_address, + 0, // inQualifierDataSize + NULL, // inQualifierData + &output_device_id_size, + &output_device_id); + return err == kAudioHardwareNoError && + output_device_id != kAudioObjectUnknown; } AudioOutputStream* AudioManagerMac::MakeAudioStream(Format format, int channels, |