Android Visualizer(オーディオエフェクト)アイスクリームサンドイッチのランタイム例外
-
26-10-2019 - |
質問
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;
}
}
}
所属していません StackOverflow