android - Android 相当于 setAudioAttributes() for MediaPlayer on API 低于 21
问题描述
我正在AudioAttribute
为我MediaPlayer
这样设置:
mMediaPlayer.setAudioAttributes((AudioAttributes) new AudioAttributesCompat.Builder()
.setUsage(AudioAttributesCompat.USAGE_NOTIFICATION_RINGTONE).build().unwrap());
但显然:
调用需要 API 级别 21(当前最低为 19):android.media.MediaPlayer#setAudioAttributes
那么,在 API 21 下应该如何设置AudioAttribute
呢?MediaPlayer
我设置这个属性主要是为了表明我对声音的使用,也就是铃声,在 API 21 下仍然需要这个属性吗?
解决方案
我想你想要setAudioStreamType(int)
的,有AudioManager.STREAM_NOTIFICATION
类型。
但是,您应该考虑使用 AndroidX 的MediaPlayer2而不是原生的 MediaPlayer。setAudioAttributes()
包括在内,您无需投射和打开包装即可使用它。
要实现它:
implementation 'androidx.media2:media2:1.0.0-alpha03'
推荐阅读
- sql - Oracle SQL Developer:如果出错则停止脚本运行
- c# - 如何在 C# 中使用控制台输入完整的二维矩阵
- java - 如何在java中将两个或多个数字添加到字符串中?
- r - R - 创建批处理文件
- sql-server - 动态 SQL 出错,可能是由于撇号 (SQL SERVER)
- java - TestNG 中的动态方法选择器不起作用
- android - 如何使用单个 Firebase 应用程序对 Android 应用程序和 Web 应用程序进行身份验证
- python - 组合熊猫数据框中选定的前几行中的字符串
- python-3.x - docker run 和 docker run -it 不提供相同的二进制文件
- android-studio - 如何在 kotlin 中初始化 lateinit 变量?