summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
Diffstat (limited to 'media')
-rw-r--r--media/audio/mac/audio_manager_mac.cc20
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,