編輯:關於Android編程
之前學習過了MediaPlayer用於播放手機音樂,但是在手機中很多的提示音並不是使用MediaPlayer來播放的比如短信鈴聲,通知鈴聲,android中使用SoundPool來播放小的音頻文件;
下面一起學習SoundPool的使用
【1】先搭界面設置一個按鈕用於播放開始
【2】得到SoundPool
查看API,得知要得到SoundPool根據版本不同有兩種方式
21版本以前使用
SoundPool pool =new SoundPool(int maxStreams, int streamType, int srcQuality)
21版本之後:使用Builder來生成
【3】調用load方法加載音頻
【4】調用play方法
public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcCwgZmxvYXQgcmF0ZSk8L3A+DQo8aHIgLz4NCjxwPrLOyv296cncPGJyIC8+DQpQYXJhbWV0ZXJzPGJyIC8+DQpzb3VuZElEIGEgc291bmRJRCByZXR1cm5lZCBieSB0aGUgbG9hZCgpIGZ1bmN0aW9uPGJyIC8+DQpsZWZ0Vm9sdW1lIGxlZnQgdm9sdW1lIHZhbHVlIChyYW5nZSA9IDAuMCB0byAxLjAp1/PJ+bXAPGJyIC8+DQpyaWdodFZvbHVtZSByaWdodCB2b2x1bWUgdmFsdWUgKHJhbmdlID0gMC4wIHRvIDEuMCnT0sn5tcA8YnIgLz4NCnByaW9yaXR5IHN0cmVhbSBwcmlvcml0eSAoMCA9IGxvd2VzdCBwcmlvcml0eSnTxc/IvLY8YnIgLz4NCmxvb3AgbG9vcCBtb2RlICgwID0gbm8gbG9vcCwgLTEgPSBsb29wIGZvcmV2ZXIp0a27t9Prt/E8YnIgLz4NCnJhdGUgcGxheWJhY2sgcmF0ZSAoMS4wID0gbm9ybWFsIHBsYXliYWNrLCByYW5nZSAwLjUgdG8gMi4wKbKlt8W3tbvYtcTL2bbIPC9wPg0KPGgyIGlkPQ=="注意事項">注意事項
如果你的沒有聲音,那是因為加載音頻需要時間,不要把load和play放在一起
也不要使線程休眠,以免阻礙主線程
下面是源碼
public class MainActivity extends Activity {
private Button mButton;
private SoundPool pool = null;
private int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.button_sound);
//必須放在外面因為加載音頻需要時間不然會沒有聲音
id= initSound();
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playSound();
}
});
}
private void playSound() {
//public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
// Parameters
// soundID a soundID returned by the load() function
// leftVolume left volume value (range = 0.0 to 1.0)左聲道
// rightVolume right volume value (range = 0.0 to 1.0)右聲道
// priority stream priority (0 = lowest priority)優先級
// loop loop mode (0 = no loop, -1 = loop forever)循環與否
// rate playback rate (1.0 = normal playback, range 0.5 to 2.0)播放返回的速度
pool.play(id, 1, 1, 0, -1, 1);
}
public int initSound() {
if (Build.VERSION.SDK_INT > 21) {
SoundPool.Builder builder = new SoundPool.Builder();
builder.setMaxStreams(2);
AudioAttributes.Builder builder1 = new AudioAttributes.Builder();
builder1.setLegacyStreamType(AudioManager.STREAM_MUSIC);
builder.setAudioAttributes(builder1.build());
pool = builder.build();
} else {
//21版本以前使用SoundPool(int maxStreams, int streamType, int srcQuality)
pool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
}
return pool.load(getApplicationContext(), R.raw.outgoing, 1);
}
}
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
相信大家在小的時候都玩過拼圖游戲,現如今,手機普及,能在手機上玩的游戲越來越多,於是乎,重溫小時候,編寫這個簡易拼圖游戲,而且也能進一步加深Android的一些基礎知識。
大家都可以微信附近的人功能搜索附近正在使用微信的小伙伴,進行打招呼聊天,不過有些用戶反映自己無法被微信附近的人搜索到,微信附近的人看不到我怎麼辦,下面小編就
前言由於Android自帶的TextView控件沒有提供傾斜的(我暫時沒有找到),我們可以自定義控件來實現,下面首先來看我們實現的效果圖。TextView文字傾斜其實實現
這個效果的完成主要分為兩個部分自定義view作為listview的列表項 一個view裡面包括 顯示頭像,名字,消息內容等的contentView和滑動才能顯示出來的刪除