音訊
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Android 的音訊硬體抽象層 (HAL) 將android.media中的更高層級的音訊特定框架 API 連接到底層音訊驅動程式和硬體。本節包括實施說明和提高效能的技巧。
Android音訊架構定義了音訊功能的實作方式,並指向實作中涉及的相關原始碼。
圖 1. Android 音訊架構
- 應用框架
- 應用程式框架包括應用程式程式碼,它使用android.media API 與音訊硬體互動。在內部,此程式碼會呼叫對應的 JNI 黏合類別來存取與音訊硬體互動的本機程式碼。
- JNI
- 與android.media關聯的 JNI 程式碼呼叫較低層級的本機程式碼來存取音訊硬體。 JNI 位於
frameworks/base/core/jni/
和frameworks/base/media/jni
。 - 原生框架
- 本機框架提供了與android.media套件相當的本機,呼叫 Binder IPC 代理程式來存取媒體伺服器的音訊特定服務。本機框架程式碼位於
frameworks/av/media/libmedia
。 - 賓德工控機
- Binder IPC 代理程式促進跨流程邊界的通訊。代理位於
frameworks/av/media/libmedia
中,並以字母“I”開頭。 - 媒體伺服器
- 媒體伺服器包含音訊服務,它們是與 HAL 實現互動的實際程式碼。媒體伺服器位於
frameworks/av/services/audioflinger
中。 - 哈爾
- HAL 定義了音訊服務呼叫的標準接口,您必須實作該介面才能使音訊硬體正常運作。更多詳細資訊請參考對應HAL版本目錄下的
*.hal
檔案中的音訊HAL介面和註解。 - 核心驅動
- 音訊驅動程式與您的硬體和 HAL 實作互動。您可以使用高級 Linux 聲音架構 (ALSA)、開放式聲音系統 (OSS) 或自訂驅動程式(HAL 與驅動程式無關)。
注意:如果您使用 ALSA,我們建議使用external/tinyalsa
作為驅動程式的使用者部分,因為它具有相容的許可(標準使用者模式庫是 GPL 許可的)。
- 基於 Open SL ES 的 Android 原生音訊(未顯示)
- 該 API 作為Android NDK的一部分公開,並且與android.media處於同一架構層級。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-04-29 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2024-04-29 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","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"]],["上次更新時間:2024-04-29 (世界標準時間)。"]]