Android學習:為按鍵新增聲音
阿新 • • 發佈:2019-01-03
轉自:http://blog.csdn.net/lissdy/article/details/8392961
為程式的按鈕新增按鍵聲音能更好的親和使用者,產生更好的使用體驗,下面就是為按鍵新增聲音的方法:
在實現的過程中,我發現不同的Android機器對聲音資原始檔的格式要求不同。public class MainActivity extends Activity { private Button mButton01; private SoundPool sp;//宣告一個SoundPool private int music;//定義一個整型用load();來設定suondID @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton01=(Button)findViewById(R.id.mButton01); sp= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一個引數為同時播放資料流的最大個數,第二資料流型別,第三為聲音質量 music = sp.load(this, R.raw.start, 1); //把你的聲音素材放到res/raw裡,第2個引數即為資原始檔,第3個為音樂的優先順序 mButton01.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { sp.play(music, 1, 1, 0, 0, 1); } } } }
當聲音資原始檔格式為wma時,Android虛擬機器上測試,按鍵可以發出聲音。
在真機上測試(魅族M9),logcat顯示如下:
Unable to load sample: (null)
W/SoundPool sample 1 not READY
按下按鍵並沒有聲音。
查詢資料發現,在使用SoundPool時,不同的機器對檔案格式要求不同。
於是將資原始檔轉為mp3格式型別,但是測試發現,這次的情況恰恰相反,即真機可以播放,虛擬機器不行。
想到之前所做專案中,聲音資源的格式為ogg,沒有出現過類似問題。果斷轉換、、進行測試,真機、虛擬機器都可以啦!!!