Определение доступности аппаратного кодера AAC во время выполнения
Q: Как я могу определить доступность аппаратного кодера AAC во время выполнения?
A: Как я могу определить доступность аппаратного кодера AAC во время выполнения?
iOS 4.0 и более поздние поддержки, помогшие с аппаратными средствами, оффлайн кодируя использование Расширенного Аудиофайла и Аудио Преобразователя APIs.
Для проверки на availablility аппаратного кодера AAC получите Формат аудио kAudioFormatProperty_Encoders использование свойства kAudioFormatMPEG4AAC как спецификатор кодера, затем выдержите сравнение mSubType и mManufacturer поля возвращенных AudioClassDescription структуры для kAudioFormatMPEG4AAC и kAppleHardwareAudioCodecManufacturer, как показано в Перечислении 1.
Перечисление 1 Используя AudioFormat для проверения наличия аппаратного кодера AAC.
Boolean IsAACHardwareEncoderAvailable(void)
{
Boolean isAvailable = false;
OSStatus error;
// get an array of AudioClassDescriptions for all installed encoders for the given format
// the specifier is the format that we are interested in - this is 'aac ' in our case
UInt32 encoderSpecifier = kAudioFormatMPEG4AAC;
UInt32 size;
error = AudioFormatGetPropertyInfo(kAudioFormatProperty_Encoders, sizeof(encoderSpecifier),
&encoderSpecifier, &size);
if (error) { printf("AudioFormatGetPropertyInfo kAudioFormatProperty_Encoders
error %lu %4.4s\n", error, (char*)&error); return false; }
UInt32 numEncoders = size / sizeof(AudioClassDescription);
AudioClassDescription encoderDescriptions[numEncoders];
error = AudioFormatGetProperty(kAudioFormatProperty_Encoders, sizeof(encoderSpecifier),
&encoderSpecifier, &size, encoderDescriptions);
if (error) { printf("AudioFormatGetProperty kAudioFormatProperty_Encoders error %lu %4.4s\n",
error, (char*)&error); return false; }
for (UInt32 i=0; i < numEncoders; ++i) {
if (encoderDescriptions[i].mSubType == kAudioFormatMPEG4AAC &&
encoderDescriptions[i].mManufacturer == kAppleHardwareAudioCodecManufacturer) isAvailable = true;
}
return isAvailable;
} |
Проверка, продемонстрированная выше, является только одним из многих шагов, которые должны быть выполнены при выполнении помогший с аппаратными средствами оффлайн кодирование. Для получения дополнительной информации относительно Аудио конфигурации Сеанса и Обработки Прерывания во время работы кодирования, обратитесь к Аудио Руководству по программированию Сеанса, iPhoneExtAudioFileConvertTest и iPhoneACFileConvertTest выборкам, доступным в Ссылочной Библиотеке iOS.
История версии документа
| Дата | Примечания |
|---|---|
| 23.12.2010 | Обновленный для 4,1 |
| 08.09.2009 | Новый документ, описывающий, как узнать, доступен ли аппаратный кодер AAC во время выполнения. |