0

我正在开发一个媒体播放器应用程序,我希望它支持的最低 API 级别是 API 22。

我想使用 Audio Focus 进行媒体播放,但 AudioFocusRequest.Builder() 不适用于 API 级别低于 API 26 的方法 requestAudioFocus() 用于 API 级别低于 API 26 的方法现在已弃用,那么如何在应用程序中使用 Audio Focus 以便它在低于 API 26 的 API 级别以及更高的 API 级别上工作呢?

audioFocusRequest = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
                                .setOnAudioFocusChangeListener(audioFocusChangeListener)
                                .setFocusGain(AudioManager.AUDIOFOCUS_GAIN)
                                .build();

这是一段在 API 级别低于 26 时不起作用并给出此错误消息的代码,

“调用需要 API 级别 26(当前最低为 22):新的 android.media.AudioFocusRequest.Builder”

4

1 回答 1

2

在运行时检查 API 级别以选择是使用requestAudioFocus()还是AudioFocusRequest.Builder.

if (Build.VERSION.SDK_INT >= 26) {
  // Use AudioFocusRequest.Builder
} else {
  // Use requestAudioFocus
}

这应该可以从 IDE 中清除您收到的错误和弃用消息。

于 2021-06-05T17:25:51.483 回答