我将 USB 免提连接到我的安卓设备。我需要在免提和内置麦克风之间切换声音输入。在某些设备(如 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
orCAMCORDER
AudioSource
代替MIC
or DEFAULT
。