相关疑难解决方法(0)

在Android的警报频道上播放声音

我做了很多谷歌搜索,但是其他人的解决方案对我来说却行不通。

我的目标是在报警通道上按需播放声音。
(因此,音量是通过警报音量设置来调整的)

从这个线程,我建立以下代码

mediaPlayerScan = MediaPlayer.create(getContext(), R.raw.scan_beep);

if (Build.VERSION.SDK_INT >= 21) {
  mediaPlayerScan.setAudioAttributes(new AudioAttributes.Builder()
          .setUsage(AudioAttributes.USAGE_ALARM)
          .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
          .build());
} else {
  mediaPlayerScan.setAudioStreamType(AudioManager.STREAM_ALARM);
}
Run Code Online (Sandbox Code Playgroud)

它仍然在音乐频道上播放。(在音乐设置中调整IE音量不会发出警报)

我的直觉是我缺少权限之类的东西,但是我没有找到这样的权限。

我正在Google Pixel 1上进行测试

谢谢,
内森

编辑:

感谢@ jeffery-blattman,以下代码对我有用

mediaPlayerScan = new MediaPlayer();
try {
  mediaPlayerScan.setDataSource(getContext(),
          Uri.parse(getString(R.string.res_path) + R.raw.scan_beep));

  if (Build.VERSION.SDK_INT >= 21) {
    mediaPlayerScan.setAudioAttributes(new AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_ALARM)
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .build());
  } else {
    mediaPlayerScan.setAudioStreamType(AudioManager.STREAM_ALARM);
  }
  mediaPlayerScan.prepare();
} catch (IOException e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
1748
查看次数

标签 统计

android ×1