插入耳机时有没有办法强制通过扬声器播放音频?

sec*_*oot 26 android

我试过推荐的

setSpeakerphoneOn(true) 
Run Code Online (Sandbox Code Playgroud)

而且不推荐

AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
Run Code Online (Sandbox Code Playgroud)

但都没有奏效.

我试过了

setWiredHeadsetOn(false)
Run Code Online (Sandbox Code Playgroud)

但这也不起作用,并且已被弃用.

有趣的是,

isSpeakerphoneOn()
Run Code Online (Sandbox Code Playgroud)

报告也是如此

isWiredHeadsetOn()
Run Code Online (Sandbox Code Playgroud)

此外,还设置了以下权限

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)

sec*_*oot 28

答案结果如下,来自Android的提示 - 通过耳机播放音频

audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
Run Code Online (Sandbox Code Playgroud)

忽略setRouting,它在APK> 10中什么都不做.忽略关于setMode的评论.忽略有关setWiredHeadsetOn的注释.确保您拥有MODIFY_AUDIO权限.

  • 这会强制从所有应用程序到扬声器的音频流,有没有办法只将音频从我的应用程序传输到扬声器? (2认同)
  • Doesn't work for HTC One M8 running Lollipop (2认同)