android播放音效

來源:互聯網
上載者:User

方法說明

構造方法

SoundPool(int maxStreams, int streamType, int srcQuality)
  maxStreams:該參數用於設定同時能夠播放多少音效,如設定為3,則最多同時可以播放3個音效
  streamType:音訊類型,在遊戲中通常設定為STREAM_MUSIC
  srcQuality:音頻檔案的品質,預設設定為0
  載入音頻檔案public int load(Context context, int resId, int priority)
  context:應用程式上下文,即調用它的Activity
  resId:資源id
  priority:優先順序,可以設定為1

播放音效
public final int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
  soundID:播放的音樂ID
  leftVolume:用來控制左聲道音量
  rightVolume:用來控制右聲道音量
  priority:優先順序,0最低
  loop:迴圈次數,0為不迴圈,-1為永遠迴圈
  rate:回放速度,該值在0.5-2.0之間,1為正常速度

暫訂播放
public final void pause(int streamID)
  streamID音效ID

----------------------------------------------

HashMap soundPoolMap;

private SoundPool sp;

//在onCreate方法裡調用

void initSound() {
soundPoolMap = new HashMap();
sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
soundPoolMap.put(1, sp.load(this, R.raw.di, 1));
}

//選擇要播放那個聲音(count)
public void playSounds(int count) {
AudioManager am = (AudioManager) this
.getSystemService(this.AUDIO_SERVICE);
float audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float audioCurrentVolumn = am
.getStreamVolume(AudioManager.STREAM_MUSIC);
float volumnRatio = audioCurrentVolumn / audioMaxVolumn;
sp.play(soundPoolMap.get(count), audioCurrentVolumn, audioCurrentVolumn, 1, 0, (float) 2.0);

}

------------------------------------

//執行個體化AudioManager對象,控制聲音
AudioManager am = (AudioManager)this.getSystemService(this.AUDIO_SERVICE);
//最大音量
float audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//當前音量
float audioCurrentVolumn = am.getStreamVolume(AudioManager.STREAM_MUSIC);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.