通过Android中的扬声器强制声音输出

时间:2010-05-26 22:09:00

标签: java android

Android是否有办法通过手机扬声器强制输出,即使耳机已插入插孔?我知道必须有一种方法,因为当你在通电话时,你可以把某人放在扬声器电话上,即使耳机已插入插孔。

3 个答案:

答案 0 :(得分:3)

您可以使用AudioManager.setSpeakerphoneOn方法更改此系统范围。

我不相信您可以为特定的MediaPlayer / AudioTrack / SoundPool实例设置此项,但根据您的使用情况,可能实际上是要使用MediaPlayer.setAudioStreamType或其他音频播放类的等效设置来设置音频流类型。

答案 1 :(得分:1)

通过扬声器输出声音

AudioManager m_amAudioManager = 
        AudioManager)getSystemService(Context.AUDIO_SERVICE);  

m_amAudioManager.setMode(AudioManager.MODE_NORMAL); 
m_amAudioManager.setSpeakerphoneOn(true); 

答案 2 :(得分:0)

这对我有用

首先,我在Manifest.xml中添加了权限

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

然后,我使用了这段代码

AudioManager m_amAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

    m_amAudioManager.setMode(AudioManager.MODE_RINGTONE | AudioManager.MODE_IN_CALL);
    m_amAudioManager.setSpeakerphoneOn(true);