android连接耳机时音量控制,android – 扬声器音量(闹钟)在插入耳机时会降低

我正试图通过最大音量的警报通道通过扬声器发出警报声.为此,我正在使用AudioManager和MediaPlayer.如果我插入耳机,仍然会通过扬声器播放闹钟,但是通过扬声器播放的闹钟音量会急剧下降,因此无法满足我的需要.

有没有办法防止音量下降?

我正在使用的代码是这样的:

public void startAlarmSound() {

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

audioManager.setSpeakerphoneOn(false);

audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), 0);

if (!alreadyPlaying)

playAlarmSound();

alreadyPlaying = true;

}

private void playAlarmSound() {

mediaPlayer = new MediaPlayer();

mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);

mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

mediaPlayer.start();

}

});

try {

mediaPlayer.setDataSource(this, Uri.parse("android.resource://com.mystuff.mine/" + R.raw.alarm_sound));

mediaPlayer.prepare();

} catch (IOException e) {

e.printStackTrace();

}

}

为了确保音量没有降低,我每5秒调用一次以下音量.

audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), 0);

我位于欧盟内部,所以它可能是由插入耳机时处理最大音量的规则引起的.由于我只关心扬声器输出,我需要一个解决方法,即使是这种情况.

编辑:

我的应用程序以及系统应用程序(如闹钟)以及Nexus 5和6都会出现此问题.因为我还阅读过其他手机制造商的问题报告,所以我不认为问题是nexus系列手机所独有的.我需要一个解决方法.

我刚检查了getStreamMaxVolume(AudioManager.STREAM_ALARM)和getStreamVolume(AudioManager.STREAM_ALARM)的结果.两者都显示7,无论耳机是否插入.

我注意到耳机已插入,而音量指示器设置为最大,如果我减小并快速再次增加,它将增加到没有耳机时的音量.然而,由于这需要用户互动,因此它不是我正在寻找的解决方案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值