即使插入耳机,如何通过蓝牙扬声器播放音频?

Dom*_*icM 9 audio android bluetooth

我将手机连接到蓝牙扬声器并插入了耳机.现在我想通过蓝牙扬声器播放音频.当我将音频流设置为AudioManager.STREAM_MUSIC它时,只需通过耳机播放.

它是否在耳机上播放并不重要,但我需要它在蓝牙扬声器上播放.

这怎么可能?应用程序SoundAbout设法做到这一点,所以必须有一种方法.

编辑:当我插入耳机后,只有连接到蓝牙扬声器后,所有音频都通过我想要的蓝牙扬声器播放.但是我不能指望用户找到它并且在向他们展示一个复杂的消息之前我宁愿找到一种方法来使声音在连接到某些时始终通过BT扬声器播放.

谢谢

(请注意,这与以下问题不同:即使插入耳机,如何通过扬声器播放音频? 我希望它能够在蓝牙扬声器上播放,而不是在手机的集成扬声器上播放.)

Ima*_*man 5

假设您已经在新的媒体播放器实例上测试了STREAM_RING而没有直接设置流类型,并且它没有用完,您需要一个正确的蓝牙设备配置文件.

看看这篇文章 阅读"实施HAL"部分,您可以使用不同的配置文件的很多来源.

还有一个简单的解决方案是将您的设备配置文件更改为getServiceConnected()方法中的HEADSET,它将变为保持连接设备,但输出将变为单声道!我记得,对于扬声器来说这是一个耻辱,A2DP也可能在某些硬件中不受支持,并且仍然被有线耳机打断.

我建议创建一个新的配置文件并使用它,使用HAL有点棘手,但值得,

很抱歉,我暂时无法为您提供源代码.


小智 0

您需要实例化 MediaPlayer 类的新对象并对其使用以下方法

 amediaplayer.setAudioStreamType(AudioManager.STREAM_RING)
Run Code Online (Sandbox Code Playgroud)

不要忘记检查使用蓝牙的授权,如您所知,如果没有用户权限,您将无法通过蓝牙向扬声器发送任何内容。