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
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡小程序

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

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
呈贡县| 会泽县| 綦江县| 井研县| 科尔| 张北县| 镇康县| 纳雍县| 虞城县| 丰台区| 托里县| 吴忠市| 灵寿县| 苍山县| 滦南县| 东明县| 五指山市| 怀安县| 桐城市| 安徽省| 磐石市| 安达市| 白城市| 明星| 石泉县| 勐海县| 卢氏县| 平湖市| 陕西省| 屯留县| 乾安县| 千阳县| 赤水市| 晋城| 龙岩市| 舒兰市| 广昌县| 林西县| 电白县| 安福县| 英德市|