高效能音訊
一般來說,高效能音訊應用程式所需的不只是播放或錄音這些簡單的功能,而是需要回應式即時系統行為。常見的用途包括:
數位音訊工作站
合成器
電子鼓
音樂學習應用程式
卡拉 OK 應用程式
DJ 混音
音效
視訊/音訊會議
本節說明最大程度縮短音訊延遲 的一般原則,也會提供音訊取樣的相關建議 ,有助於您選擇最佳取樣率,並考量使用浮點數表示音訊資料的優缺點。
本節其餘部分會說明兩種可用於編寫高效能音訊應用程式的程式庫:
OpenSL ES 是由 Khronos Group 開發的 OpenSL ES™ API 規範的實作,專門用於 Android。
我們不建議將 OpenSL ES 直接用於新設計。應用程式開發人員和中介軟體供應商在選擇原生音訊介面時應考慮 Oboe 或 AAudio。
AAudio 是 OpenSL ES 程式庫的輕量型原生 Android 替代選項。AAudio API 比 OpenSL ES 更小,而且更容易使用。
注意 :開發人員應考慮使用開放原始碼 Oboe 程式庫 (可於 GitHub 取得)。Oboe 是 C++ 包裝函式,提供與 AAudio 非常相似的 API。Oboe 會在 AAudio 可用時呼叫 AAudio,而在 AAudio 不可用時則會改回使用 OpenSL ES。
其他資源
如需瞭解更多資訊,不妨參考以下資源:
範例
程式碼研究室
影片
Content and code samples on this page are subject to the licenses described in the Content License . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2022-04-06 UTC.
[{
"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":"其他"
}]