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'
我正在为我的 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'