2

Android アプリに問題があります。Dolby がアクティブな状態で kindle fire 7 インチを実行すると、サウンドに欠陥がありますが、このオプションを無効にすると、問題はなくなります。

MediaPlayer を使用して長いオーディオ ファイルを再生しています。AudioPool はバックグラウンド サウンドであるため使用できません。すでに SoundPool を使用してエフェクトを再生しています。

Dolby システムが Android アプリケーションでアクティブかどうかをプログラムで検出する方法はありますか?

MediaPlayer をマルチチャンネルに対応させる方法はありますか?

私の悪い英語でごめんなさい:p


プロパティ「dolby.ds.state」をプログラムで設定する方法を見つけましたが、これは大きな問題を引き起こしたので、やらないでください!

この方法は次のとおりです。

System.setProperty("dolby.ds.state", "off");

私がそれをしたとき、プロパティは適用されましたが、デバイスを再起動したときにのみ、通常はデバイスがプログラムで設定された値を取得し続けてメニューオプションを変更しました。

あなたが同じ愚かなことをしたことがあるなら、私はそれを解決する方法を見つけました。次のコードを実行して、デバイスをリセットしてください。

Properties sysProps = System.getProperties();
sysProps.remove("dolby.ds.state");
System.clearProperty("dolby.ds.state");
4

2 に答える 2

5

実行するadb shell getprop | grep dolbyと、システム プロパティ dolby.ds.state が表示され、アクティブなとき (オーディオの再生時) にオンとオフを切り替えることができます。

アプリケーションからアクティブなステータスを照会するには、これによりシステム プロパティを照会できます (Java を満足させるために、おそらく try/catch ブロックをラップする必要があることに注意してください)。

Class getSysProp = null;
getSysProp = Class.forName("android.os.SystemProperties");
Method method = null;
method = getSysProp.getDeclaredMethod("get", String.class);
String prop = null;
prop = (String)method.invoke(null, "dolby.ds.state");

さまざまな種類のオーディオが Dolby ステータスをトリガーするようです。iHeartRadio の再生などで logcat を見ると、orbis では Dolby 設定がバイパスされることがわかります。使用しているコーデックを変更しない場合は、単純に変更できる可能性があります。オンにしたくない。

** 編集: 新しい公式 Dolby API で更新 **

より完全な (ハックの少ない!) ソリューションについては、http://developer.dolby.com/を参照してください。

于 2013-04-12T16:23:57.617 に答える
2

Dolby には公式 API が用意されており、お客様のニーズを満たすことができると確信しています。http://developer.dolby.comをチェックしてください。

アプリ開発者は、ドルビー技術にアクセスできるようになりました。

于 2013-11-06T19:19:29.813 に答える