Android開發之SoundPool使用詳解

2021-07-16 13:47:18 字數 1185 閱讀 1267

1) 延時時間較長,且資源佔用率高。

soundpool提供了乙個構造器,該構造器可以指定它總共支援多少個聲音(也就是池的大小)、聲音的品質等。構造器如下:

soundpool(int maxstreams, int streamtype, int srcquality):第乙個引數指定支援多少個聲音;第二個引數指定聲音型別:第三個引數指定聲音品質。

一旦得到了soundpool物件之後,接下來就可呼叫soundpool的多個過載的load方法來載入聲音了。

soundpool提供了如下4個load方法:

int load(context context, int resld, int priority):從 resld 所對應的資源載入聲音。

int load(filedescriptor fd, long offset, long length, int priority):載入 fd 所對應的檔案的offset開始、長度為length的聲音。

int load(assetfiledescriptor afd, int priority):從afd 所對應的檔案中載入聲音。

int load(string path, int priority):從path 對應的檔案去載入聲音。

上面4個方法中都有乙個priority引數,該引數目前還沒有任何作用,android建議將該 引數設為1,保持和未來的相容性。

為了更好地管理soundpool所載入的每個聲音的1d,程式一般會使用乙個hashmap物件來管理聲音。

1) 呼叫soundpool的構造器建立soundpool的物件。

2) 呼叫soundpool物件的load()方法從指定資源、檔案中載入聲音。最好使用hashmap< integer, integer>來管理所載入的聲音。

程式**如下:

public classsoundpooldemoextendsactivity }};

btn1.setonclicklistener(listener);

btn2.setonclicklistener(listener);

btn3.setonclicklistener(listener);}}

雖然soundpool比mediaplayer的效果好,但也不是絕對不存在延遲問題,尤其在那些效能不太好的手機中,soundpool的延遲問題會更嚴重。

Android開發之簡訊

1.sms主要結構 id 簡訊序號,如100 thread id 對話的序號,如100,與同乙個手機號互發的簡訊,其序號是相同的 person 發件人,如果發件人在通訊錄中則為具體姓名,陌生人為null date 日期,long型,如1346988516,可以對日期顯示格式進行設定 protocol...

Android開發之SparseArray簡介

1 定義 sparsearray,即稀疏陣列,這個物件和hashmap類似,也是乙個容器,但是它的key是整數型別。2 特點 sparsearray不需要對key和value進行auto boxing 將原始型別封裝為物件型別,比如把int型別封裝成integer型別 結構比hashmap簡單 sp...

Android開發之服務

建立服務時會自動繼承service類,service類中有乙個onbind 方法,這是唯一乙個抽象的方法,然後我們一般需要重寫oncreate onstartcommand ondestory 方法,其中oncreate 只在建立服務的時候才會呼叫,這一點和onstartcommand 是有區別的,...