2011-12-01 65 views
4

在样本AudioFxDemo.java运行时异常,提供的SDK,我得到一个的Android展台(音效)上的冰淇淋三明治

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

尝试创建android.media.audiofx.Visualizer

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

(AudioFxDemo.java:173)。

据我所看到的,误差在native code起源,(线266个FF)试图创建android.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级别的问题。姜饼(API等级10)我没有问题。我只在虚拟设备上测试过。

回答

4

这似乎是模拟器的问题。我已经在运行Android 4.0.3的实际设备上进行了测试,它工作得很好。

+0

我遇到了同样的问题。我在仿真器上运行,但在实际设备上运行时没有遇到它们。 –

+0

我已经实现了同样的事情。但它在仿真器上崩溃并且在真实设备中完美工作。这个问题应该是什么原因? –

+0

我遇到与运行Android 6.0棉花糖的现实世界设备相同的问题。我已经添加了所有必需的许可 – TheOnlyAnil

2

它似乎是一些Android设备上的问题。我对联想a369i SDK版本17.此崩溃http://pastebin.com/7kqPbxkV现在只有i`ve发现事情就是检查是否支持设备上的均衡器效果:

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; 
    } 
    } 
} 
相关问题