Android Visualizer(オーディオエフェクト)アイスクリームサンドイッチのランタイム例外

StackOverflow https://stackoverflow.com/questions/8341247

質問

SDKを備えたサンプルaudiofxdemo.javaで、私は

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

Android.media.audiofx.visualizerを作成しようとするとき

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

(audiofxdemo.java:173)。

私が見る限り、エラーは ネイティブコード, 、(行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)で問題はありません。仮想デバイスでのみテストしました。

役に立ちましたか?

解決

これはエミュレータの問題のようです。 Android 4.0.3を実行している実際のデバイスでテストしましたが、うまくいきました。

他のヒント

一部の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;
     }
   }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top