當前位置:首頁 » 安卓系統 » queueandroid

queueandroid

發布時間: 2024-01-26 19:12:16

Ⅰ 誰能幫我詳細解釋一下Android MediaCodec類中queueInputBuffer這個方法

queueInputBuffer和dequeueInputBuffer是一對方法,兩個要在一起使用哦。
首先,這一對函數的應用場合是對輸入的數據流進行編碼或者解碼處理的時候,你會通過各種方法獲得一個ByteBuffer的數組,這些數據就是准備處理的數據。
你要通過自己的方法找到你要處理的部分,然後調用dequeueInputBuffer方法提取出要處理的部分(也就是一個ByteBuffer數據流),把這一部分放到緩存區。
接下來就是你自己對於這個數據流的處理了。
然後在處理完畢之後,一定要調用queueInputBuffer把這個ByteBuffer放回到隊列中,這樣才能正確釋放緩存區。
對於輸出的數據流,同樣也有一對這樣的函數,叫做queueOutputBuffer和dequeueOutputBuffer,作用類似哦。
希望採納~w

Ⅱ 如何抓取廣播隊列消息 android

下面和大家分享一下android中非常重要的消息處理機制,說到消息處理,Message,MessageQueue,Looper,Handler這四個類的作用是我們必須要明白的。 下面分別談談他們的作用: MessageQueue MessageQueue表示消息隊列,存放消息的地方,按照「先進先..則執行,每一個線程只可以擁有一個MessageQueue。當創建Looper對象的時候會創建一個MessageQueue對象。

Message

Message表示消息對象,MessageQueue中存放的對象,一個MessageQueue中可以存放多個Message對象。通過調用Message類的obtain()方法或者調用Handler類的obtainMessage()方法獲取Message對象,但是這樣並不一定會創建一個新的Message對象,如果消息池中有可用的Message對象則直接取出返回這個對象,否則如果消息池中沒有可用的Message對象,則會創建一個新的Message對象。當消息隊列中的Message對象被系統處理完之後,該Message對象會從MessageQueue中刪除,然後放入消息池中。

Looper

Looper是用來操作MessageQueue的,每一個Looper對應一個MessageQueue,可以通過調用Looper.myLooper()方法獲取當前線程的Looper對象,Looper循環從MessageQueue中取出Message對象,交給Handler調用handleMessage方法進行處理,處理完之後Message對象被放入消息池中。

Handler

Handler是消息的處理者,Handler將需要傳遞的信息封裝成Message對象,然後調用sendMessage方法將Message放入MessageQueue中,當MessageQueue循環到該Message時,調用相應Handler對象的handleMessage方法對其進行處理。 http://d-android.com/developer/
注意在UI線程也就是主線程中默認會創建Looper對象和MessageQueue對象,如果在我們自己新開的線程中要進行消息處理,必須創建Looper對象和MessageQueue對象,通過調用Looper.prepare()方法可以創建Looper對象和MessageQueue對象,調用Looper.loop()方法可以啟動消息循環隊列。

熱點內容
演算法對算 發布:2024-11-28 15:41:38 瀏覽:3
稱重系統界面如何找配置項 發布:2024-11-28 15:28:29 瀏覽:569
vue能被反編譯嘛 發布:2024-11-28 15:23:59 瀏覽:79
gl和中配哪個配置好 發布:2024-11-28 15:20:01 瀏覽:235
linuxandroid嵌入式 發布:2024-11-28 15:18:58 瀏覽:200
服務密碼是啥有什麼用 發布:2024-11-28 15:08:48 瀏覽:164
編程王國 發布:2024-11-28 15:05:12 瀏覽:977
ftp伺服器對什麼硬體要求高 發布:2024-11-28 14:45:10 瀏覽:650
sql服務管理器下載 發布:2024-11-28 14:45:02 瀏覽:772
windows第三方ftp搭建 發布:2024-11-28 14:43:53 瀏覽:199