2013-02-22 5 views
1

Я пытаюсь определить, какие эффекты OpenSL ES поддерживаются работающим устройством.Поддерживаемые аудиоэффекты

Класс AudioEffect для Andorid SDK предоставляет method для этого.

public static Descriptor[] queryEffects()

моя проблема в том, что, учитывая все AudioEffect.Descriptor возвращаемый этим методом я не знаю, как определить, если один из них на самом деле один я требовать.

общественного UUID типа

Добавлено в API уровня 9 Указывает общий тип эффекта (эквалайзер, усиление низких частот ...). UUID соответствует идентификатору интерфейса OpenSL ES для этого типа эффекта.

атрибут по type, кажется, один я должен использовать, но я не могу найти ссылку на OpenSL ES, где указаны все UUID, типа эффекта.

Знаете ли вы, где я могу найти его?

я мог бы узнать UUID, тестирование method результата на устройстве, но,

я могу предположить, что UUID всегда одинаково на каждом устройстве для конкретного типа эффекта?

Заранее спасибо

ответ

1

См libOpenSLES.so.variables.txt для списка определений имен эффект.
Если вы хотите найти, где идентификатор действительно определен, вы должны посмотреть в corresponding header file. Для SL_IID_PRESETREVERB вы должны посмотреть в effect_presetreverb.h и так далее.

+0

спасибо человеку, что UUID, определенный в файле заголовка, который вы указали, тот же, что и я, на моем устройстве. Теперь, могу ли я предположить, что это всегда одно и то же на каждом устройстве Android на земле? –

+0

Кажется маловероятным, что определение этих МИД изменится, поскольку это нарушит существующие приложения, которые используют эти ИИП. Вы действительно должны использовать 'SL_IID_', а не жестко кодировать одни и те же значения. – Michael

Смежные вопросы