當前位置:首頁 » 安卓系統 » 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()方法可以啟動消息循環隊列。

熱點內容
日本溥儀訪問 發布:2025-07-03 04:24:27 瀏覽:672
java文件遍歷 發布:2025-07-03 04:22:22 瀏覽:139
android畫虛線 發布:2025-07-03 04:11:04 瀏覽:384
系統啟動密碼怎麼取消 發布:2025-07-03 04:08:06 瀏覽:746
python程序設計第三版課後答案 發布:2025-07-03 03:58:08 瀏覽:213
socket上傳文件 發布:2025-07-03 03:57:24 瀏覽:895
安卓cleo腳本 發布:2025-07-03 03:41:26 瀏覽:245
編程器解讀 發布:2025-07-03 03:22:49 瀏覽:24
中國電信加密通信業務 發布:2025-07-03 03:06:00 瀏覽:521
腳本家的台詞 發布:2025-07-03 03:05:50 瀏覽:709