自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
單生產者多消費者相機緩衝傳輸
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
此功能引入了一組方法,允許相機客戶端在捕獲會話處於活動狀態且相機流正在進行時動態添加和刪除輸出表面。新的輸出可以映射到特定的、用戶選擇的共享攝像機流。添加表面後,可以隨時將其移除。
一般的想法是在幾個輸出表面內共享與特定相機流相關的緩衝區。當緩衝區準備好在消費者端進行進一步處理時,內部參考計數器會跟踪緩衝區。當所有消費者完成各自的任務時,緩衝區就會出列並可供相機使用。

圖 1.緩衝區共享
圖 1 描繪了一個示例場景,其中相機流 2 處理的緩衝區由相機服務內的專用共享輸出流內的流拆分器組件動態附加和分離、引用計數和管理。
示例和來源
此功能的核心實現可以在Camera3StreamSplitter
模塊中找到。有關此功能的文檔可以在開發人員參考中找到:
執行
相機 HAL 端不需要實現,因為此功能是在框架端實現的。
驗證
您的實現必須通過涵蓋MultiViewTest模塊和本機 API 的本機 JNI 庫的此功能的 CTS 案例。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-06-06 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2022-06-06 (世界標準時間)。"],[],[]]