Android遊戲音效實現

2021-09-01 19:40:55 字數 1467 閱讀 6768

構造方法 : soundpool(int maxstreams, int streamtype, int srcquality) ;

引數解析 :

streamtype : 該引數定義音訊型別 , 遊戲中一般設定為audiomanager.stream_music .

srcquality : 該引數用來設定音訊質量 , 這個引數目前沒有作用 , 這裡設定為 0;

載入音訊檔案方法 :intload(context context, int resid, int priority);

引數解析 :

context : 上下文物件;

resid : 要載入的資源檔案 , 即r.raw.music...

priority : 優先級別 , 這裡沒有作用 , 設定為1.

引數解析 :

soundid : 這個id不是資源id , 指的是利用load方法載入資源檔案返回的id值 , 這個要區別清楚.

leftvolume : 左聲道的音量 , 這個音量是乙個 0 ~ 1的數 , 這個小數是當前音量/最大音量的結果;

rightvolume : 右聲道的音量 , 這個音量與左聲道的音量是同一種音量;

priority : 優先順序引數 , 0為最低, 這裡設定為1;

loop : 音效迴圈的次數 , 0為不迴圈 , -1為永遠迴圈;

rate : 音效回放的速度 , 這個值是在0.5~2.0f之間 , 1f是正常速度;

獲取方法 : audiomanager物件時系統服務, 可以通過呼叫上下文物件的getsystemservice(context.audio_service)獲取 , 注意獲取到之後 , 需要將物件牆磚為audiomanager物件才可以使用.

利用audiomanager獲取當前音量的方法 : float currvolume = audiomanager.getstreamvolume(audiomanager.stream_music);

利用audiomanager獲取當前系統最大音量方法 : float maxvolume = audiomanager.getstreammaxvolume(audiomanager.stream_music);

使用這兩個音量就可以計算出執行soundpool音效的音量 , 當前音量 / 系統最大音量 , 結果就是soundpool.play()方法中需要傳入的音量 ;

public class mainactivity extends activity implements onclicklistener 

private void initsoundpool()

@override

public void onclick(view v) }

private void play(int sound, int loop)

}

遊戲中的音效

1.遊戲中的即時音效 soundpool類 public int load context context,int resid,int priority 架子啊音訊檔案 context 該引數為應用程式的上下文 resid 該引數為要載入的音效資源的id priority 優先順序 例項 初始化聲音...

android 音效處理 (2)

android 音效混響處理,系統提供了2個類分別是 environmentalreverb 和 presetreverb。presetreverb 使用比較簡單,內建了一些固定的混響效果,但實際效果不是非常好。presetreverb 常用使用方法 mpresetreverb new preset...

1 實現音效筆記

package com.shiqiu.yinxiao 1.sp new soundpool 物件 b.載入資源 public int load context context,int resid,int priority 解釋下 lodd 上下文 activity 資源檔案id r.raw.atta...