java - java Android: 为什么SoundPool的构造函数不推荐使用?

  显示原文与译文双语对照的内容

那意味着我们不能再用它了? 如果最小API设置为 21,我们应该使用什么? 还有,当旧的应用程序使用新的操作系统工作时,忽略这个警告是否可以?

时间: 原作者:

为什么SoundPool构造函数被否决

旧的SoundPool 构造函数 deprecate使用 SoundPool.Builder 来构建 SoundPool 对象。旧构造函数有三个参数: maxStreamsstreamTypesrcQuality

因为 maxStreams 不需要显式地设置,所以 SoundPool.BuilderstreamType 要好,AudioAttributes 包含更多的信息,而且无用的srcQuality 参数被消除。 这就是旧构造函数被废弃的原因。

使用已弃用的构造函数在 API 21之前支持版本

你仍然可以使用旧构造函数,如果你愿意,则忽略警告。 "已经废弃"意味着它仍然是工作的但不再是建议做事的方式。

如果你希望在仍然支持旧版本的同时使用新的构造函数,可以使用 if 语句来选择API版本。


SoundPool mSoundPool;


int mSoundId;



//...



if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) {


 mSoundPool = new SoundPool.Builder()


. setMaxStreams(10)


. build();


} else {


 mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);


}



mSoundId = mSoundPool.load(this, R.raw.somesound, 1);



//...



mSoundPool.play(mSoundId, 1, 1, 1, 0, 1);



观看这里视频详细信息。

原作者:
...