5

グローバル オーディオ ミックスにバス ブースト エフェクトを適用するアプリを市場に出しています。残念ながら、オーディオ セッション 0 の使用は 4.0.3 以降非推奨となっており、回避策を見つけることができませんでした。オーディオ セッション ID をスキャンする方法はありますか? これが私のlogcatです:

10-16 20:58:01.569: E/AndroidRuntime(645): FATAL EXCEPTION: main
10-16 20:58:01.569: E/AndroidRuntime(645): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.rustlesoft.bassbooster/com.rustlesoft.bassbooster.BassBooster}: java.lang.IllegalArgumentException: Effect type: 0634f220-ddd4-11db-a0fc-0002a5d5c51b not supported.
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.os.Looper.loop(Looper.java:137)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread.main(ActivityThread.java:4745)
10-16 20:58:01.569: E/AndroidRuntime(645):  at java.lang.reflect.Method.invokeNative(Native Method)
10-16 20:58:01.569: E/AndroidRuntime(645):  at java.lang.reflect.Method.invoke(Method.java:511)
10-16 20:58:01.569: E/AndroidRuntime(645):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-16 20:58:01.569: E/AndroidRuntime(645):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-16 20:58:01.569: E/AndroidRuntime(645):  at dalvik.system.NativeStart.main(Native Method)
10-16 20:58:01.569: E/AndroidRuntime(645): Caused by: java.lang.IllegalArgumentException: Effect type: 0634f220-ddd4-11db-a0fc-0002a5d5c51b not supported.
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:381)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.media.audiofx.BassBoost.<init>(BassBoost.java:101)
10-16 20:58:01.569: E/AndroidRuntime(645):  at com.rustlesoft.bassbooster.BassBooster.<init>(BassBooster.java:14)
10-16 20:58:01.569: E/AndroidRuntime(645):  at java.lang.Class.newInstanceImpl(Native Method)
10-16 20:58:01.569: E/AndroidRuntime(645):  at java.lang.Class.newInstance(Class.java:1319)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
10-16 20:58:01.569: E/AndroidRuntime(645):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
10-16 20:58:01.569: E/AndroidRuntime(645):  ... 11 more
4

2 に答える 2

1

非推奨かもしれませんが、グローバル出力ミックス (セッション 0) にエフェクトを適用することは、ICS と JB の両方で引き続き機能するはずですMODIFY_AUDIO_SETTINGS。 .

于 2012-10-15T09:23:14.943 に答える
0

これはストローをつかんでスタックトレースを見ている可能性がありますが、適用しようとしているオーディオ効果がまったくサポートされていない可能性があります。

queryEffects()を呼び出してDescriptorオブジェクトを反復処理し、適用しようとしているオーディオ効果のタイプが最初にサポートされているかどうかを確認できます。

于 2014-06-19T02:17:50.370 に答える