【问题标题】:simultaneously using a headphone and speaker同时使用耳机和扬声器
【发布时间】:2012-12-22 01:15:57
【问题描述】:

我想将扬声器用于音频输出,同时将耳机插孔用于不同的音频输出/输入。这可能吗?

【问题讨论】:

    标签: android audio


    【解决方案1】:

    可以在一些设备上执行(我已经验证它可以在 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的回答

    【讨论】:

    • 这完全取决于手机的硬件架构,以及音频编解码器的能力。
    • @Marko:我知道。我在第一段中指出了这一点。它确实适用于 U8500。它确实适用于例如APQ8064。
    • @Michael,是否可以使用 AudioTrack 做到这一点?我需要 AudioTracks 来即时生成声音。
    • @leo2_uru:使用AudioTrackMediaPlayer 或其他什么都没有关系。无论如何,所有这些 API 在内部都是基于(本机)AudioTracks(至少在我上次检查时)。
    • 如何在 AudioTrack @Michael 中设置流类型?根据Android API,我认为这是不可能的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多