在南昌APP開發(fā)中,之前百恒網(wǎng)絡(luò)為大家介紹過加載音頻文件的方法,如今過去了那么久了,如果大家對(duì)于這一塊還有哪些不清楚的地方,可以點(diǎn)擊這篇文章《如何使用SoundPool加載音頻文件》再看一遍,相信我們重溫了一遍之后大家都會(huì)有印象了。既然之前講了加載音頻文化部的方法,那么今天百恒網(wǎng)絡(luò)就來為大家介紹一下APP開發(fā)中播放音頻的方法,福利多多,驚喜多多!
在BeatBox中再添加一個(gè)play(Sound)方法:
播放音頻(BeatBox.java)
mSoundPool = new SoundPool(MAX_SOUNDS, AudioManager.STREAM_MUSIC, 0);
loadSounds();
}
public void play(Sound sound) {
Integer soundId = sound.getSoundId();
if (soundId == null) {
return;
}
mSoundPool.play(soundId, 1.0f, 1.0f, 1, 0, 1.0f);
}
public List getSounds() {
return mSounds;
}
播放前要檢查并確保soundId不是null值。Sound加載失敗會(huì)導(dǎo)致soundId出現(xiàn)null值。
檢查通過以后,就可以調(diào)用SoundPool.play(int, float, float, int, int, float)方法播放音頻了。這些參數(shù)依次是:音頻ID、左音量、右音量、優(yōu)先級(jí)(無效)、是否循環(huán)以及播放速率。我們需要最大音量和常速播放,所以傳入值1.0。是否循環(huán)參數(shù)傳入0值,代表不循環(huán)。
最后,添加按鈕監(jiān)聽器方法,實(shí)現(xiàn)點(diǎn)擊按鈕播放音頻,方法如下所示:
點(diǎn)擊按鈕播放音頻(BeatBoxFragment.java)
private class SoundHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
private Button mButton;
private Sound mSound;
public SoundHolder(LayoutInflater inflater, ViewGroup container) {
super(inflater.inflate(R.layout.list_item_sound, parent, false));
mButton = (Button)itemView.findViewById(R.id.list_item_sound_button);
mButton.setOnClickListener(this);
}
public void bindSound(Sound sound) {
mSound = sound;
mButton.setText(mSound.getName());
}
@Override
public void onClick(View v) {
mBeatBox.play(mSound);
}
}
再次運(yùn)行應(yīng)用,點(diǎn)擊任意按鈕,應(yīng)該可以聽到播放的音頻了,如下圖所示。
以上就是南昌APP開發(fā)公司-百恒網(wǎng)絡(luò)為大家介紹的關(guān)于實(shí)現(xiàn)音頻播放的方法,如果還有哪些不明白的地方,可隨時(shí)來電和我們聯(lián)系。如有網(wǎng)站建設(shè)、APP開發(fā)、網(wǎng)絡(luò)營(yíng)銷推廣等方面的需求,百恒網(wǎng)絡(luò)將竭誠(chéng)為您服務(wù)!