Android 相当于 API 低于 21 的 MediaPlayer 的 setAudioAttributes()

Android equivalent of setAudioAttributes() for MediaPlayer on API lower than 21

我正在为我的 MediaPlayer 设置 AudioAttribute,如下所示:

 mMediaPlayer.setAudioAttributes((AudioAttributes) new AudioAttributesCompat.Builder()
                    .setUsage(AudioAttributesCompat.USAGE_NOTIFICATION_RINGTONE).build().unwrap());

但显然:

Call requires API level 21 (current min is 19): android.media.MediaPlayer#setAudioAttributes

那么,API 21 下的MediaPlayer 应该如何设置AudioAttribute 之类的东西呢?我设置这个属性主要是为了表明我对声音的使用,就是Ringtone,API21下还需要这个属性吗?

我想你想要 setAudioStreamType(int), with the AudioManager.STREAM_NOTIFICATION 类型。

但是,您应该考虑使用 AndroidX 的 MediaPlayer2 而不是本机 MediaPlayer。 setAudioAttributes() 已包含在内,您无需强制转换和解包即可使用它。

实现它:

implementation 'androidx.media2:media2:1.0.0-alpha03'