因此,我试图围绕“音频属性”进行介绍。这是我到目前为止的内容:
// alarm.getSound() will return a proper URI to pick a ringtone
Ringtone tone = RingtoneManager.getRingtone(this, alarm.getSound());
if (Build.VERSION.SDK_INT >= 21) {
AudioAttributes aa = new AudioAttributes.Builder()
.setFlags(AudioAttributes.USAGE_ALARM | AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
tone.setAudioAttributes(aa);
} else {
tone.setStreamType(RingtoneManager.TYPE_ALARM);
}
tone.play();
This page讨论音频属性及其“兼容性映射”。如果我以前使用过
setStreamType(TYPE_ALARM)
(就像上面的我一样),那么它将设置CONTENT_TYPE_SONIFICATION
和USAGE_ALARM
标志。我想摆脱setStreamType
,所以我在想,如果手动设置这些标志(如我上面的标志),那么当铃声播放时,它将使用警报音量。好吧,它似乎并非如此。上面的代码仍然使用我的Nexus 6的媒体音量而不是闹钟音量响起。我的MRA68N版本为6.0。使用闹钟音量有什么不同?
最佳答案
在Moto G Android 6.0上测试
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes aa = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build();
ringtone.setAudioAttributes(aa);
} else {
ringtone.setStreamType(AudioManager.STREAM_ALARM);
}
关于android - 如何使用带有setAudioAttributes的Alarm音量播放铃声?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33961439/