2016-05-10 2 views
3

Я тестирую запись звука на Mac, используя следующий кодAudioHardwareServiceGetPropertyData осуждается

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); 

Но Xcode дал мне, что AudioHardwareService *** осуждаются из OS X 10.11.

Я проверил руководство API Apple, но я не могу найти замену для этих API.

Я знаю, что это работает, но все эти предупреждения настолько раздражают. Что мне делать?

+0

Что касается молчания компилятора, я не знаю - устаревший не вышел на пенсию. Else, можете ли вы попробовать использовать 'AudioHardwareGetProperty()'? Это хорошо документировано. Вы даже можете получить диапазон доступных номинальных частот дискретизации. – user3078414

ответ

2

В вашем случае достаточно просто заменить AudioObjectGetPropertyData на AudioHardwareServiceGetPropertyData; см. TN2223.