播放声音通过扬声器,同时通过耳机播放音乐(Playing sound over speakers w

2019-06-27 04:10发布

我有一个AudioTrack通过耳机流。 我有一个送SoundPool只内置扬声器,无需中断AudioTrack打了耳机。 任何黑客歹徒?

Answer 1:

许多Android设备使用一个单输出线在AudioFlinger /音频HAL为所有本地播放(耳机,扬声器,有线耳机/耳机),使两个轨道同时不可能的不同的路由(这就是为什么在许多设备上的媒体流是强制静音如果通知播放,你已经有了一个连接有线耳机,因为否则的话,你就会听到音乐的扬声器,同时通知播放)。

在一些设备上有可能做你要找的内容,如果你能做到一个setForceUse(FOR_MEDIA, FORCE_SPEAKER)并使用MUSIC您要在扬声器播放的东西流类型,以及VOICE_CALL流类型要在有线耳机玩的东西。
我不知道是否有任何方式来执行应用程序setForceUse虽然通话。 或许你可以在handleMessage的方法AudioService通过反射类,并把它的MSG_SET_FORCE_USE消息..我从来没有尝试过自己,所以它可能会惨遭失败。

编辑:现在我已经测试迫使媒体流扬声器,同时将有线耳机连接在实际设备上的setForceUse方式,和它的工作(虽然我不能保证它会在所有设备工作)。 实施是从什么上述我略有不同。 见我的回答如何在Android 4.0的编程开启/关闭音箱为我所用的代码。



文章来源: Playing sound over speakers while playing music through headphones