在 SoundPool.Builder 类中设置音频属性,用于 API 21
我正在关注Android编程视频系列,该系列是在API之前的21次中设计的。因此,它告诉我通过以下方式创建一个 SoundPool 变量。
SoundPool sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
//SoundPool(int maxStreams, int streamType, int srcQuality)
但是,我也想将这个 SoundPool 用于 API 21。所以,我正在这样做:
if((android.os.Build.VERSION.SDK_INT) == 21){
sp21 = new SoundPool.Builder();
sp21.setMaxStreams(5);
sp = sp21.build();
}
else{
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
}
sp21 是 API 21 的类型变量,sp 是类型变量。Builder
SoundPool
这与我的AVD具有API 21和具有API 19的真实设备非常有效。(没有尝试过使用带有API 21的真实设备,但我认为它可以很好地工作)。现在,我想在 if-block 之前设置 to。所以我输入:streamType
USAGE_MEDIA
sp = sp21.build();
sp21.setAudioAttributes(AudioAttributes.USAGE_MEDIA);
但是Lint用红色标记它并说:
SoundPool.Builder 类型中的方法 setAudioAttributes(AudioAttributes) 不适用于参数 (int)
我知道,即使我没有将其设置为USAGE_MEDIA默认情况下也会将其设置为相同。但是,如果我必须将其设置为其他内容,则我要求将来参考:USAGE_ALARM。
我应该如何继续?
请帮忙!
我提到了Audio Attributes,SoundPool,SoundPool.builder和AudioManager。