所以我试图围绕音频属性.这是我到目前为止所拥有的:
// 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();
Run Code Online (Sandbox Code Playgroud)
本页讨论音频属性及其"兼容性映射".如果我以前使用过setStreamType(TYPE_ALARM)(就像我上面那样)那么它将设置CONTENT_TYPE_SONIFICATION和USAGE_ALARM标志.我想离开,setStreamType所以我想如果我手动设置那些标志(就像我在上面)那么当铃声播放时它将使用警报音量.好吧,它似乎并没有像那样工作.
上面的代码仍然使用我的Nexus 6的媒体音量而不是警报音量.我在6.0版本中使用了MRA68N.使用Alarm音量可以做些什么?
在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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3184 次 |
| 最近记录: |