android - 在Android上切换USB音频

标签 android audio xamarin.android android-5.0-lollipop

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/

相关文章:

android - 请迁移 JSON-RPC 和全局 HTTP 批处理端点 - Google Drive API

Android Multipart HTTP Post 不发送文件的 MIME 类型

java - 如何在Java中的两个混合器之间创建 "connection"?

python - 使用 Turtle 和 PyAudio 在 Python 中顺利进行 "Audialize"递归

android - 类似网格的 View 中的动态 CardView

android - 多种可能条件 Realm 查询

android - 谷歌 Android 教程 - 不编译

c++ - 多线程,线程同步

xamarin - 使用 Rx 在 Xamarin 中桥接事件

c# - Mvvmcross TableView 绑定(bind)触发器两次