我的android应用程序有问题,当我运行kindle 7“与杜比活动,有一个缺陷的声音,但当这个选项被禁用时,问题消失。
我使用MediaPlayer播放长音频文件,我不能使用AudioPool,因为这些是背景声音,我已经在使用SoundPool来播放效果。
有一种方法可以编程地检测杜比系统在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");发布于 2013-04-12 16:23:57
如果您执行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");它看起来像是不同类型的音频触发杜比状态--如果你用类似于iHeartRadio播放的东西观看logcat,你会看到杜比设置被忽略了,所以你可能只是在你不想让它打开的时候改变你使用的编解码器。
**编辑:用新的官方杜比API更新**
请参阅http://developer.dolby.com/以获得更完整的内容(以及更少的麻烦!)解决方案
发布于 2013-11-06 19:19:29
杜比现在有一个官方的API,我相信这将满足您的需要。确保签出http://developer.dolby.com
作为一名应用程序开发人员,您现在可以访问杜比技术。
https://stackoverflow.com/questions/15972884
复制相似问题