所以我正在努力理解音频属性。目前为止,我了解到以下内容:
// 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();
本页讨论了音频属性及其“兼容性映射”。如果我之前使用了setStreamType(TYPE_ALARM)
(就像上面一样),那么它将设置CONTENT_TYPE_SONIFICATION
和USAGE_ALARM
标志。我想避免使用setStreamType
,所以我在想,如果我手动设置这些标志(如上所示),那么当铃声响起时,它会使用闹钟音量。然而,似乎并不是这样工作的。
以上代码仍然使用我的Nexus 6的媒体音量而不是闹钟音量进行铃声响起。我使用的是构建MRA68N的6.0系统。我应该怎么做才能使用闹钟音量?
setter
中设置它们可以解决这个问题。 - Abandoned Cart