もう使えないということですか?最小APIが21未満に設定されている場合、何を使用すればよいですか?また、それを使用して構築された古いアプリケーションは新しいOSで動作するため、警告を無視しても問題ありませんか?
古い SoundPool
コンストラクタ は、_ SoundPool.Builder
を使用してSoundPool
オブジェクトを構築するために廃止されました。 古いコンストラクタ には、maxStreams
、streamType
、およびsrcQuality
の3つのパラメータがありました。
maxStreams
パラメーターは ビルダーで設定 にすることができます。 (設定しない場合のデフォルトは1です。)streamType
パラメータは AudioAttributes
に置き換えられ、streamType
よりもわかりやすくなっています。 ( ここ で始まるさまざまなストリームタイプ定数を参照してください。)AudioAttributes
を使用すると、usage(なぜサウンドを再生しています)、コンテンツタイプ(再生内容)、フラグ(それを再生する方法)。srcQuality
パラメータは、サンプルレートコンバータの品質を設定するために存在したと考えられます。ただし、これは実装されておらず、設定しても効果がありませんでした。したがって、maxStreams
は明示的に設定する必要がなく、AudioAttributes
にはstreamType
より多くの情報が含まれているため、SoundPool.Builder
は古いコンストラクタよりも優れており、役に立たないsrcQuality
パラメータが削除されました。そのため、古いコンストラクターは廃止されました。
古いコンストラクタを引き続き使用し、必要に応じて警告を無視することができます。 「非推奨」とは、引き続き機能することを意味しますが、推奨される方法ではなくなります。
古いバージョンをサポートしながら新しいコンストラクターを利用したい場合は、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);
詳しくは このビデオ をご覧ください。
使用する - SoundPool.Builder
代わりに。サウンドプールの作成方法が変更されました。新しい方法を使用することをお勧めします。