soundPoolは、同時に複数の音を再生することができ、それは1M以上のものを提出することが最善ではありません、音だけでゲームの音をミキシング、数秒間再生することができます
パブリック クラス MainActivityは延びAppCompatActivity { @Overrideが 保護 ボイドのonCreate(バンドルsavedInstanceState){ スーパー; .onCreate(savedInstanceState) SoundPool Soundpool; // SoundPoolインスタンス // SDKバージョン21である流域SoundPool IF(Build.VERSION.SDK_INT> = 21れる){ SoundPool.Builderビルダー = 新しい新しいSoundPool.Builder(); //は、オーディオ再生の数、に渡さ 。builder.setMaxStreams(1 ); // AudioAttributes様々なオーディオ特性は、包装方法であって、 AttrBuilder = AudioAttributes.Builder 新しい新AudioAttributes.Builder(); // 設定された適切なオーディオストリーム属性 attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC); // AudioAttributesロード builder.setAudioAttributesを(attrBuilder.build()); Soundpool = ビルダー。ビルド(); } 他{ / ** *最初のパラメータ:同時ストリームの最大数オブジェクトSoundPool:maxStreams値int * 2番目のパラメータ:int型streamType:AudioManagerオーディオストリームタイプがに記載されている 第三のパラメータ*:INT srcQualityを質量フィルタサンプルレート変換。影響はありません。デフォルト値として0を使用します。 * / Soundpool = 新新SoundPool(1は、AudioManager.STREAM_MUSICは、0 ); } // 4つの方法でオーディオリソースを記述することができる: // 1 AssetFileDescriptor目標 // INTロード(AssetFileDescriptor AFD、INT優先) // 2.リソースID // INT負荷(コンテキスト・コンテキスト、RESIDはint、int型の優先順位) // パスを指定することにより、ロード3 // INT負荷(文字列パス、INT優先) // ローディング4.のFileDescriptor // int型の負荷(FDのFileDescriptor 、)ロング、ロング丈、int型の優先順位をオフセット // ここ秒、3番目のパラメータは指摘優先、音声*のAPIの優先順位で、ロードするオーディオリソースIDを鳴らし、優先度のパラメータには現在の結果は、設定をお勧めしません1。 最終的な int型= soundPool.load VoiceID(これ、R.raw.qunianxiatianは、1 ); // ロードを待つ非同期必要が完了すると、音声が正常に再生でき soundPool.setOnLoadCompleteListener(新新SoundPool.OnLoadCompleteListener(){ @Override 公共 のボイド onLoadComplete(SoundPool Soundpool、int型 sampleId、INTの状態){ IF(ステータス== 0 ){ // 最初のパラメータSoundID // 第二パラメータはleftVolumeボリューム値を放置する(範囲= 0.0〜1.0) // 第三のパラメータが正しいrightVolumeありますボリューム値(範囲= 0.0〜1.0) //優先度のストリームのための第四のパラメータの優先度、高優先度の大きい値の数は、同時にサポートのSoundPool最大数の処理の流れのうち再生影響 // 音声周波数0を繰り返す第パラメータループプレイ値、-1無限ループ、他のループ+ 1倍の値プレー // 速度の第六のパラメータ再生レート、0.5〜0.5〜2.0(ハーフレート、通常速度の1.0、2.0の2倍の速度を) soundPool.play(VoiceID ,. 1 ,. 1 ,. 1,0 ,. 1 ); } } }); } }