Getting invalid attributes error when playing sound with MediaPlayer

Viewed 1484

suddenly my app doesnt play a sound when I call mediaPlayer.start().

I get following error in log:

2020-05-29 20:43:57.165 4719-1953/? E/AudioSystem: invalid attributes { Content type: AUDIO_CONTENT_TYPE_UNKNOWN Usage: AUDIO_USAGE_UNKNOWN Source: -1 Flags: 0x800 Tags:  } when converting to stream

I am doing this one when the app starts:

mMediaPlayer = MediaPlayer.create(context, R.raw.restaurant_order_received)

Thanks for help

2 Answers

You need to provide a resourceID. Try this:

var resID = context?.resources?.getIdentifier("YOUR_FILE_NAME", "raw", context.packageName)

resID?.let {
    // No fike found when it == 0
    if (it == 0) {
        val errorString = "Error occured."
        Snackbar.make(view, errorString, 2000).show()
        return
    }
    mediaPlayer = MediaPlayer.create(context, it)
    mediaPlayer?.start()
    return
}

I had no attributes configures...

so just do this:

mMediaPlayer = MediaPlayer()
mMediaPlayer.setAudioAttributes(AudioAttributes.Builder()
    .setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
    .setLegacyStreamType(AudioManager.STREAM_MUSIC)
    .setUsage(AudioAttributes.USAGE_ALARM)
    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
    .build())
mMediaPlayer.setDataSource(context, Uri.parse("android.resource://com.mypackage.name/raw/restaurant_order_received"))
mMediaPlayer.isLooping = true
mMediaPlayer.prepare()
Related