Аудиоустройства - Как определить версию Аудиоустройства
Q: Как я определяю версию Аудиоустройства, которое я использую?
A: Core Audio использует Аудио Компонент API для предоставления доступа к Аудиоустройствам доступными как ресурс в масштабе всей системы. После получения допустимого экземпляра Аудиоустройства можно использовать AudioComponentGetVersion получить номер версии.
Это может быть полезно, когда Вы требуете определенной версии Аудиоустройства с обновленными или различными функциями, и Вы хотите определить, какая версия установлена перед использованием Аудиоустройства.
Перечисление 1 демонстрирует, как гарантировать, чтобы у Вас было, по крайней мере, версия 2.0 3D установленного аудиоустройства Микшера.
Перечисление 1 , проверяющее 3D версию микшера.
// The Version format is 0xMMMMmmbb |
// The digits M/m/b are stored in BCD (Binary Coded Decimal) format for numbers greater than 9 |
// A version number for 10.3.1 would be: 0x100301 |
// A version number for 2.3.1 would be: 0x20301 |
#define kPreferredMixerVersion 0x20400 |
#define kMinimumMixerVersion 0x20000 |
... |
// if the returned version is less than 0x20000 |
// it's not the 3DMixer we're looking for, move along... |
UInt32 mixerVersion = kMinimumMixerVersion; |
if ( Is3DMixerVersionValid(&mixerVersion) ) { |
// yes, we can work with it |
// your code here... |
printf("Version Number Returned 0x%x", (unsigned int)mixerVersion); |
} |
... |
bool Is3DMixerVersionValid(UInt32 *ioVersionNumber) |
{ |
bool isVersionValid = false; |
UInt32 theVersionNumber = 0; |
if (NULL == ioVersionNumber) return false; |
AudioComponentDescription mixer3D_desc = { kAudioUnitType_Mixer, |
kAudioUnitSubType_3DMixer, |
kAudioUnitManufacturer_Apple, |
0, 0 }; |
AudioComponent mixer3D_component = AudioComponentFindNext(0, &mixer3D_desc); |
if (NULL == mixer3D_component) return false; |
if (AudioComponentGetVersion(mixer3D_component, &theVersionNumber)) return false; |
if (theVersionNumber >= *ioVersionNumber){ |
isVersionValid = true; |
*ioVersionNumber = theVersionNumber; // validated this pointer on entry |
} |
return isVersionValid; |
} |
Посмотрите AudioComponent.h для получения дополнительной информации.
История версии документа
| Дата | Примечания |
|---|---|
| 30.07.2013 | Обновленный для использования Аудио Компонента API. Обновленное описание версии форматирует и добавленные примеры. |
| 07.03.2005 | Измененный код Is3DMixerVersionValid (). Добавленная информация о формате Версии (BCD). |
| 03.02.2005 | Новый документ, демонстрирующий, как найти номер версии Аудиоустройства. |