Can someone please show me how to set my media player to play with alarm volume. I want to set the media player to alarm usage. I've tried what others have said and no success. Can I get a modern example in kotlin please.
CodePudding user response:
The MediaPlayer has a method called setAudioAttributes. The AudioAttributes passed to this method control the audio stream that audio file will be played in.
In order to make the MediaPlayer play in the alarm stream, You have to set the usage of the AudioAttributes to USAGE_ALARM. There is a dedicated Builder class for creating AudioAttributes which is used in the code below. Besides that You also want to specify the contentType attribute - for the alarms the most suitable will most likely be CONTENT_TYPE_MUSIC. Here is the example, modern kotlin code:
mediaPlayer.apply {
reset()
setAudioAttributes( // Here is the important part
AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM) // usage - alarm
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build()
)
setDataSource(
context,
alarmSoundUri
)
isLooping = true
prepare()
start()
}
