Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android播放音效

android播放音效

編輯:關於Android編程

方法說明

構造方法

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);

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved