如何查看是否支持音频流?

时间:2019-07-20 10:21:20

标签: android android-studio android-mediaplayer alarmmanager android-audiomanager

您好,我正在构建一个使用 STREAM_ALARM 的应用。我认为有些设备不支持 STREAM_ALARM 。因此,我的应用程序无法在这些设备上播放音乐。

Samsung Glaxy Note 4 ZTE

在上图中,两个设备都有不同的音频管理器控件。左侧设备没有 ALARM_STREAM (我认为),这就是为什么它没有播放声音的原因。

这是我使用STREAM_ALARM初始化媒体播放器的方式。

alarmMediaPlayer = new MediaPlayer();
alarmMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
alarmMediaPlayer.setDataSource(this, uri);
alarmMediaPlayer.setLooping(true);
alarmMediaPlayer.prepare();
alarmMediaPlayer.start();
  

AudioManager Constants我阅读了其文档,但一无所获

在其 AudioManager 中具有警报控制功能的设备,正在播放声音,但左侧设备未在播放声音。

所以我的问题是如何检查设备的音频管理器中是否有 ALARM_STREAM

1 个答案:

答案 0 :(得分:0)

我不知道您是否可以实际检查它。通常,如果您要检查设备功能,则应使用

if (this.getPackageManager().hasSystemFeature(PackageManager.APPFEATURE){}

但是Packagemanager不具有ALARM_STREAM功能,所以我认为您可以尝试:

int stream_alarmvolume=AudioManager.STREAM_ALARM;

并捕获系统给出的错误,如果系统不具有此功能,我将不知道它会出现的错误,因为我无法对其进行测试。 我也不确定它是否会给出错误,但您应该尝试一下。