2016-05-10 18 views
3

Ich teste die Tonaufnahme auf Mac, indem Sie den folgenden Code verwendenAudioHardwareServiceGetPropertyData veraltet

OSStatus error; 
AudioDeviceID deviceID = 0; 

AudioObjectPropertyAddress propertyAddress; 
UInt32 propertySize; 
propertyAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice; 
propertyAddress.mScope = kAudioObjectPropertyScopeGlobal; 
propertyAddress.mElement = 0; 
propertySize = sizeof(AudioDeviceID); 
error = AudioHardwareServiceGetPropertyData(kAudioObjectSystemObject, 
              &propertyAddress, 
              0, 
              NULL, 
              &propertySize, 
              &deviceID); 
if(error) 
    return error; 

propertyAddress.mSelector = kAudioDevicePropertyNominalSampleRate; 
propertyAddress.mScope = kAudioObjectPropertyScopeGlobal; 
propertyAddress.mElement = 0; 
propertySize = sizeof(Float64); 
error = AudioHardwareServiceGetPropertyData(deviceID, 
              &propertyAddress, 
              0, 
              NULL, 
              &propertySize, 
              outSampleRate); 

Aber Xcode hat mir, dass die AudioHardwareService *** ab OS X 10.11 veraltet sind.

überprüfte ich den API-Leitfaden von Apple, aber ich kann keinen Ersatz für diese APIs finden.

ich weiß, es funktioniert, aber alle diese Warnungen sind so ärgerlich. Was soll ich tun?

+0

Wie für die Compiler zum Schweigen zu bringen, weiß ich nicht - veraltet ist nicht im Ruhestand. Else, können Sie versuchen, 'mit' AudioHardwareGetProperty()? Es ist gut dokumentiert. Sie können sogar eine Auswahl verfügbarer nominaler Abtastraten erhalten. – user3078414

Antwort

2

In Ihrem Fall einfach ersetzen AudioObjectGetPropertyData für AudioHardwareServiceGetPropertyData genügen sollte; siehe TN2223.