我正在尝试让我的媒体播放器使用警报音量而不是媒体音量。我已经尝试过这个,但它不起作用,有什么建议吗?另外,我是否想在某个时候更改声音文件,该解决方案可以与变量一起使用吗?
val mediaPlayer1 = MediaPlayer.create(context2, R.raw.geese)
mediaPlayer1.setAudioAttributes(AudioAttributes.Builder().setUsage((AudioAttributes.USAGE_ALARM)).build())
mediaPlayer1.start()
mediaPlayer1.setLooping(true)
我找到了这个问题的解决方案。
按照说明使用以下代码。
首先声明媒体播放器如下图
private var thePlayer: MediaPlayer? = null
现在使用下面的代码来创建并播放警报声音。
try {
thePlayer = MediaPlayer()
thePlayer?.setAudioAttributes(AudioAttributes.Builder().setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
.setLegacyStreamType(AudioManager.STREAM_ALARM)
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION).build())
thePlayer?.setDataSource(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM))
thePlayer?.isLooping = true
thePlayer?.prepare()
thePlayer?.start()
} catch (e: Exception) {
e.printStackTrace()
}
要停止媒体播放器,请使用以下代码。
try {
thePlayer?.stop()
thePlayer?.release()
} catch (e: Exception) {
e.printStackTrace()
}
注意:每次停止播放器时,请确保释放播放器,因为每次调用它时都会创建媒体播放器的新实例。