我已经进行了很多谷歌搜索,但是其他人的解决方案对我不起作用。
我的目标是在闹钟通道上按需播放声音。
(因此,声音音量由闹钟音量设置调整)
从这个线程中,我构建了以下代码
mediaPlayerScan = MediaPlayer.create(getContext(), R.raw.scan_beep);
if (Build.VERSION.SDK_INT >= 21) {
mediaPlayerScan.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build());
} else {
mediaPlayerScan.setAudioStreamType(AudioManager.STREAM_ALARM);
}
音乐频道仍在播放。(在音乐设置中调整音量而不是闹钟设置中)
我的直觉告诉我,我可能缺少某个权限或其他东西,但我没有找到这样的权限。
我正在 Google Pixel 1 上进行测试。
谢谢,
Nathan
编辑:
感谢 @jeffery-blattman,以下代码对我起作用
mediaPlayerScan = new MediaPlayer();
try {
mediaPlayerScan.setDataSource(getContext(),
Uri.parse(getString(R.string.res_path) + R.raw.scan_beep));
if (Build.VERSION.SDK_INT >= 21) {
mediaPlayerScan.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build());
} else {
mediaPlayerScan.setAudioStreamType(AudioManager.STREAM_ALARM);
}
mediaPlayerScan.prepare();
} catch (IOException e) {
e.printStackTrace();
}