【发布时间】:2012-12-22 01:15:57
【问题描述】:
我想将扬声器用于音频输出,同时将耳机插孔用于不同的音频输出/输入。这可能吗?
【问题讨论】:
我想将扬声器用于音频输出,同时将耳机插孔用于不同的音频输出/输入。这可能吗?
【问题讨论】:
可以在一些设备上执行(我已经验证它可以在 Sony XPeria P 上运行),但我认为您不能指望它可以在所有设备上运行 设备。
你要做的是强制MUSIC 流路由到扬声器:
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);
然后,您将MUSIC 流用于您想要路由到扬声器的任何内容,并将VOICE_CALL 流用于您想要路由到耳机/耳机的任何内容。
查看我对Playing sound over speakers while playing music through headphones的回答
【讨论】:
AudioTrack、MediaPlayer 或其他什么都没有关系。无论如何,所有这些 API 在内部都是基于(本机)AudioTracks(至少在我上次检查时)。