【问题标题】:Toggle USB Audio on Android在 Android 上切换 USB 音频
【发布时间】:2014-12-18 21:43:50
【问题描述】:

Android Lollipop 现在支持开箱即用的 USB 音频。但是,我希望能够控制到 USB 音频设备的音频路由。 Android SDK 中是否有任何方法可以实现这种程度的控制?我尝试使用 setForceUse,但这在设备之间不一致,并且似乎仅适用于未连接 USB 音频设备时(更不用说 setForceUse 没有 USB 选项)。

例如,我希望我的应用能够播放到正常的手机耳机插孔,但使用切换按钮能够将相同的音频路由到连接的 USB 音频设备。再次按下切换按钮将切换回耳机插孔。

【问题讨论】:

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


    【解决方案1】:

    我可以通过调用 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(""));
    

    【讨论】:

      猜你喜欢
      • 2020-12-15
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 2018-10-13
      • 2015-02-01
      • 1970-01-01
      相关资源
      最近更新 更多