欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程實現(xiàn)使用SoundPool播放音樂的方法

 更新時間:2016年01月21日 09:17:00   作者:zqiang_55  
這篇文章主要介紹了Android編程實現(xiàn)使用SoundPool播放音樂的方法,較為詳細的分析說明了SoundPool對象的使用技巧,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)使用SoundPool播放音樂的方法。分享給大家供大家參考,具體如下:

如果應用程序要播放密集、短促的音效,這時還用MediaPlayer就顯得不合適了。MediaPlayer存在如下缺點

1、資源占用率較高,延遲時間較長

2、不支持多個音頻同時播放

此時我們可以用SoundPool來播放音效,SoundPool使用音效池的概念來管理多個短促的音效,例如它可以開始就加載20個音效,以后在程序中按音效的ID進行播放

SoundPool主要用于播放一些較短的聲音片段,優(yōu)勢在于CPU資源占用量低和反應延遲較小。還支持自行設置聲音的品質、音量、播放比率等參數(shù)

SoundPool提供了一個構造器,該構造器可以指定它總共支持多少個聲音、聲音的品質、

SoundPool(int maxStreams, int streamType,int srcQuality):第一個參數(shù)指定支持多少個聲音,第二個參數(shù)指定聲音的類型,第三個參數(shù)指定聲音的品質

一旦得到了SoundPool對象后,接下來就可調用SoundPool的多個重載的load方法來加載聲音了,

1、int load(Context context, int resId, int priority): 從resId所對應的資源加載聲音

2、int load(FileDescript fd, long offset, long length, int priority):加載fd 所對應的文件的offset開始,長度為length的聲音

3、int load(AssetFileDescriptior afd, int priority):從所對應的文件中加載聲音

4、int load(String path, int priotity):從path對應的文件中加載聲音

上面四個方法中都有一個priotity參數(shù),該參數(shù)目前還沒有任何作用,Android建議設為1,保持和未來的兼容性

上面四個方法加載聲音之后,都會返回改聲音的ID,以后程序就可以通過該聲音的ID來播放指定的聲音,SoundPool提供下面方法播放聲音:

int play(int sounded, float leftVolume,float rightVolume, int priotity, int loop, float rate):該方法的第一個參數(shù)指定播放哪個聲音,leftVolume,rightVolume指定左右的音量,priority指定播放聲音的優(yōu)先級,數(shù)值越大,優(yōu)先級越高。Loop指定是否循環(huán),0為不循環(huán),-1為循環(huán);rate指定播放的比率,數(shù)值可以從0.5到2,1為正常比率

為了更好的管理SoundPool所加載的每一聲音ID,程序一般會使用一個HashMap<Integer,Integer>對象來管理聲音

歸納起來,使用SoundPool播放聲音的步驟如下:

1、調用SoundPool的構造器創(chuàng)建SoundPool的對象

2、調用SoundPool對象的load()方法從指定資源、文件中加載聲音。最好用HashMap<Integer,Integer>來管理所加載的聲音

3、調用SoundPool的play方法播放聲音

SoundPool存在問題:

1. SoundPool最大只能申請1M的內(nèi)存空間,這就意味著我們只能使用一些很短的聲音片段,而不是用它來播放歌曲或者游戲背景音樂(背景音樂可以考慮使用JetPlayer來播放)。

2. SoundPool提供了pause和stop方法,但這些方法建議最好不要輕易使用,因為有些時候它們可能會使你的程序莫名其妙的終止。還有些朋友反映它們不會立即中止播放聲音,而是把緩沖區(qū)里的數(shù)據(jù)播放完才會停下來,也許會多播放一秒鐘。

3. 音頻格式建議使用OGG格式。在我的小游戲Agile Buddy中,我一開始使用WAV格式的音頻文件存放游戲音效。經(jīng)過反復測試,在音效播放間隔較短的情況下會出現(xiàn)異常關閉的情況(有說法是SoundPool目前只對16bit的WAV文件有較好的支持)。后來將文件轉成OGG格式,問題得到了解決。

在此說明一點,使用SoudPool加載音樂的時候一般在onCreate()函數(shù)里面加載,要是在用到的時候加載,要設置監(jiān)聽回調函數(shù)setOnLoadCompleteListener(SoundPool.OnLoadCompleteListener listener),否則在播放的時候會沒有聲音

更多關于Android開發(fā)相關內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • 如何安裝adb工具及常用的adb命令

    如何安裝adb工具及常用的adb命令

    ADB全稱為Android Debug Bridge,起到調試橋的作用,是一個客戶端-服務器端程序,ADB 也是 Android SDK 中的一個工具,可以直接操作管理 Android 模擬器或者真實的 Android 設備,本文介紹如何安裝adb工具及常用的adb命令,感興趣的朋友一起看看吧
    2024-01-01
  • Android編程實現(xiàn)監(jiān)控各個程序流量的方法

    Android編程實現(xiàn)監(jiān)控各個程序流量的方法

    這篇文章主要介紹了Android編程實現(xiàn)監(jiān)控各個程序流量的方法,涉及Android針對應用包的遍歷,權限控制及相關屬性操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • Android Studio 設置代碼提示和代碼自動補全快捷鍵方式

    Android Studio 設置代碼提示和代碼自動補全快捷鍵方式

    這篇文章主要介紹了Android Studio 設置代碼提示和代碼自動補全快捷鍵方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android利用Andserver搭建服務器的詳細教程

    Android利用Andserver搭建服務器的詳細教程

    這篇文章主要介紹了Android利用Andserver搭建服務器的教程,本文通過圖文實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Android編程之重力感應用法分析

    Android編程之重力感應用法分析

    這篇文章主要介紹了Android編程之重力感應用法,結合實例形式較為詳細的分析了重力感應的原理、相關概念與實現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • Android EditText限制輸入字符類型的方法總結

    Android EditText限制輸入字符類型的方法總結

    這篇文章主要介紹了Android EditText限制輸入字符類型的方法總結的相關資料,需要的朋友可以參考下
    2017-03-03
  • Flutter應用框架搭建之屏幕適配詳解

    Flutter應用框架搭建之屏幕適配詳解

    因移動設備的多樣性,特別是 Android 的碎片化嚴重,存在各種各樣的分辨率,而 Flutter 跨平臺開發(fā)又需同時支持 Android 和 iOS ,為盡可能的還原設計圖效果提升用戶體驗,屏幕適配就勢在必行了。本文將詳細講解Flutter屏幕適配的方法,需要的可以參考一下
    2022-03-03
  • android實用工具類分享(獲取內(nèi)存/檢查網(wǎng)絡/屏幕高度/手機分辨率)

    android實用工具類分享(獲取內(nèi)存/檢查網(wǎng)絡/屏幕高度/手機分辨率)

    這篇文章主要介紹了android實用工具類,包括獲取內(nèi)存、檢查網(wǎng)絡、屏幕高度、手機分辨率、獲取版本號等功能,需要的朋友可以參考下
    2014-03-03
  • Android Studio去除界面默認標題欄的方法

    Android Studio去除界面默認標題欄的方法

    這篇文章主要介紹了Android Studio去除界面默認標題欄的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2007-09-09
  • Android實現(xiàn)加載時提示“正在加載,請稍后”的方法

    Android實現(xiàn)加載時提示“正在加載,請稍后”的方法

    在現(xiàn)在的很多應用中,當在加載的時候,如果頁面動態(tài)數(shù)據(jù)較多,會有很長一段時間的空白頁面,如果加上這個頁面正在加載的提示,使得應用更加人性化。這篇文章就給大家分享了在 Android實現(xiàn)加載時提示“正在加載,請稍后”的方法,有需要的朋友們可以參考借鑒。
    2016-10-10

最新評論