Исключение во время выполнения Android Visualizer (Audio Effects) на Ice Cream Sandwich - PullRequest
4 голосов
/ 01 декабря 2011

В примере AudioFxDemo.java, поставляемом с SDK, я получаю

java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4

при попытке создать android.media.audiofx.Visualizer

mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId());

(AudioFxDemo.java: 173).

Насколько я вижу, ошибка происходит из собственного кода , (строки 266 и далее). Ошибка также возникает при попытке создать андроид.media.audiofx.Equalizer:

mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());

(AudioFxDemo.java:98)

Я получаю

java.lang.IllegalArgumentException: Effect type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b not supported.

Я объявил следующие разрешения для своего проекта:

<uses-permission android:name="android.permission.RECORD_AUDIO"
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

Есть идеи, что здесь может пойти не так?

Кажется, проблема с уровнем API.У меня нет проблем с Gingerbread (API Level 10).Я тестировал только на виртуальных устройствах.

Ответы [ 2 ]

4 голосов
/ 27 января 2012

Это похоже на проблему с эмулятором.Я протестировал на реальном устройстве под управлением Android 4.0.3, и он работал просто отлично.

2 голосов
/ 31 декабря 2014

кажется, проблема на некоторых устройствах Android. Я получил этот сбой http://pastebin.com/7kqPbxkV на Lenovo a369i SDK версии 17. На данный момент единственное, что я нашел, это проверить, поддерживается ли эквалайзер на устройстве:

boolean supports_equalizer=false;
AudioEffect.Descriptor [] effects = Equalizer.queryEffects();
for (AudioEffect.Descriptor lDescriptor:effects){
   if (Build.VERSION.SDK_INT>=18) { //Equalizer present only starting with API 18. Cam try to hardcode its UUID
     if (AudioEffect.EFFECT_TYPE_EQUALIZER.equals(lDescriptor.uuid)){
        supports_equalizer=true;
     }
   }
}
...