【发布时间】:2013-08-23 18:27:16
【问题描述】:
我将 USB 免提连接到我的 Android 设备。我需要在免提和内置麦克风之间切换声音输入。在某些设备(如 mk802 hdmi-tv-console)中,系统菜单可以更改声音输入和输出。
我正在寻找一种方法来更改控制台或代码的输入和输出。
【问题讨论】:
我将 USB 免提连接到我的 Android 设备。我需要在免提和内置麦克风之间切换声音输入。在某些设备(如 mk802 hdmi-tv-console)中,系统菜单可以更改声音输入和输出。
我正在寻找一种方法来更改控制台或代码的输入和输出。
【问题讨论】:
我不知道有任何官方方式可以按照您的意愿行事。基本原理是这样的:如果您不想使用免提装置,那么您一开始就不会插入它。
您可以尝试一些方法,但不能保证它们适用于所有设备和 Android 版本。
对于播放,您可以尝试将音频路由到扬声器而不是 USB 配件:
Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default
// behavior, use FORCE_NONE (0).
setForceUse.invoke(null, 1, 1);
对于录音,您可以尝试使用VOICE_CALL 或CAMCORDER AudioSource 而不是MIC 或DEFAULT。
【讨论】: