Android Lollipop现在支持开箱即用的USB音频。但是,我希望能够控制到USB音频设备的音频路由。 Android SDK中是否有任何方法可以允许这种程度的控制?我尝试使用setForceUse,但这在设备之间不一致,并且似乎仅在未连接USB音频设备时才起作用(更不用说setForceUse没有USB选项)。
例如,我希望我的应用程序能够播放普通的手机耳机插孔,但具有切换按钮,可以将相同的音频路由到连接的USB音频设备。再按一次切换按钮将切换回耳机插孔。
最佳答案
我可以通过调用setDeviceConnectionState并指定耳机/耳机是否可用(将通过耳机播放)或不可用(将通过USB播放)来判断是否插入了耳机插孔。这将切换USB音频,这正是我打算要做的。可能有一种更清洁的方法,但是现在可以使用。
audioSystemClass = Class.ForName("android.media.AudioSystem");
// will disable the headphone
setDeviceConnectionState.Invoke(audioSystemClass, (Java.Lang.Integer)DEVICE_OUT_WIRED_HEADPHONE, (Java.Lang.Integer)DEVICE_STATE_UNAVAILABLE, new Java.Lang.String(""));
// will enable the headphone
setDeviceConnectionState.Invoke(audioSystemClass, (Java.Lang.Integer)DEVICE_OUT_WIRED_HEADPHONE, (Java.Lang.Integer)DEVICE_STATE_AVAILABLE, new Java.Lang.String(""));
关于android - 在Android上切换USB音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556237/