Ошибка получения неверных атрибутов при воспроизведении звука с помощью MediaPlayer - PullRequest
1 голос
/ 29 мая 2020

внезапно мое приложение не воспроизводит звук, когда я вызываю mediaPlayer.start().

Я получаю следующую ошибку в журнале:

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

Я делаю это при запуске приложения:

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

Спасибо за помощь

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Вам необходимо предоставить resourceID. Попробуйте это:

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
}
0 голосов
/ 29 мая 2020

У меня не было настроек атрибутов ...

, так что просто сделайте это:

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()
...