caoporm97国产在线视频|欧美性XXXXX精品|一本一道久久a久久精品综合开|精品久久久久久久久久久AⅤ|

十年專注于品牌網站建設 十余年專注于網站建設_小程序開發(fā)_APP開發(fā),低調、敢創(chuàng)新、有情懷!
南昌百恒網絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡微信小程序

百恒網絡

南昌百恒網絡

如何使用SoundPool加載音頻文件

百恒網絡 2017-05-31 6989

如何使用SoundPool加載音頻文件?下面南昌APP制作開發(fā)公司-百恒網絡就來為大家揭曉,不過在介紹如何使用SoundPool加載音頻文件前首先得先創(chuàng)建一個SoundPool對象,具體操作如下圖所示。

創(chuàng)建SoundPool對象

Lollipop引入了新的方式創(chuàng)建SoundPool:使用SoundPool.Builder。不過,為了兼容API 16最低級別,只能選擇使用SoundPool(int, int, int)這個老構造方法了。

第一個參數(shù)指定同時播放多少個音頻。這里指定了5個。在播放5個音頻時,如果嘗試再播放第6個,SoundPool會停止播放原來的音頻。

第二個參數(shù)確定音頻流類型。Android有很多不同的音頻流,它們都有各自獨立的音量控制選項。這就是調低音樂音量,鬧鐘音量卻不受影響的原因。打開文檔,查看AudioManager類的AUDIO_*常量,還可以看到其他控制選項。STREAM_MUSIC使用的是同音樂和游戲一樣的音量控制。

最后一個參數(shù)指定采樣率轉換品質,這個參數(shù)不起作用,所以這里傳入0值。

接下來就開始使用SoundPool加載音頻文件,相比其他音頻播放方法,SoundPool還有個快速響應的優(yōu)勢:指令剛一發(fā)出,它就會立即開始播放,一點都不拖沓。

不過反應快也是有代價的,那就是在播放前必須預先加載音頻。SoundPool加載的音頻文件都有自己的Integer類型ID。如下圖所示,在Sound類中添加mSoundId實例變量,并添加相應的獲取方法和設置方法管理這些ID。

添加mSondId實例變量

南昌APP制作開發(fā)公司要提醒大家的是,mSoundId用了Integer類型而不是int。這樣,在Sound的mSoundId沒有值時可以設置其為null值。

現(xiàn)在處理音頻加載。在BeatBox中添加一個load(Sound)方法載入音頻,如下圖所示。

加載音頻

調用mSoundPool.load(AssetFileDescriptor, int)方法可以把文件載入SoundPool待播。為方便管理、重播或卸載音頻文件,mSoundPool.load(...)方法會返回一個int型ID。這實際就是存儲在mSoundId中的ID。調用openFd(String)方法有可能拋出IOException,load(Sound)方法也是如此。

現(xiàn)在,在BeatBox.loadSounds()方法中,調用load(Sound)方法載入全部音頻文件,如下圖所示。

載入全部音頻文件

運行應用確認音頻都已正確加載。否則,會看到LogCat中的紅色異常日志。

以上就是百恒網絡為大家講的使用SoundPool加載音頻文件方法,了解更多關于南昌APP開發(fā)技術資訊,歡迎來電咨詢百恒網絡,或者訪問公司官網查看更多技術文章。


400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×