android连接耳机时音量控制,android – 扬声器音量(闹钟)在插入耳机时会降低
我正試圖通過最大音量的警報(bào)通道通過揚(yáng)聲器發(fā)出警報(bào)聲.為此,我正在使用AudioManager和MediaPlayer.如果我插入耳機(jī),仍然會(huì)通過揚(yáng)聲器播放鬧鐘,但是通過揚(yáng)聲器播放的鬧鐘音量會(huì)急劇下降,因此無法滿足我的需要.
有沒有辦法防止音量下降?
我正在使用的代碼是這樣的:
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秒調(diào)用一次以下音量.
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), 0);
我位于歐盟內(nèi)部,所以它可能是由插入耳機(jī)時(shí)處理最大音量的規(guī)則引起的.由于我只關(guān)心揚(yáng)聲器輸出,我需要一個(gè)解決方法,即使是這種情況.
編輯:
我的應(yīng)用程序以及系統(tǒng)應(yīng)用程序(如鬧鐘)以及Nexus 5和6都會(huì)出現(xiàn)此問題.因?yàn)槲疫€閱讀過其他手機(jī)制造商的問題報(bào)告,所以我不認(rèn)為問題是nexus系列手機(jī)所獨(dú)有的.我需要一個(gè)解決方法.
我剛檢查了getStreamMaxVolume(AudioManager.STREAM_ALARM)和getStreamVolume(AudioManager.STREAM_ALARM)的結(jié)果.兩者都顯示7,無論耳機(jī)是否插入.
我注意到耳機(jī)已插入,而音量指示器設(shè)置為最大,如果我減小并快速再次增加,它將增加到?jīng)]有耳機(jī)時(shí)的音量.然而,由于這需要用戶互動(dòng),因此它不是我正在尋找的解決方案.
總結(jié)
以上是生活随笔為你收集整理的android连接耳机时音量控制,android – 扬声器音量(闹钟)在插入耳机时会降低的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: protocol buffers使用说明
- 下一篇: 一个优美的架构需要考虑的几个问题