欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android音頻開發(fā)(6):使用OpenSLESAPI(上)

前面幾篇文章介紹了如何在 Java 層,利用 Android 提供的 AudioRecord 采集音頻,利用 AudioTrack 播放音頻,利用 MediaCodec 來編解碼,這些 API 均是 Android 提供的 Java 層 API,無論是采集、播放還是編解碼,這些 API 接口都需要將音頻數(shù)據(jù)從 Java 拷貝到 native 層,或者從 native 層拷貝到 Java,如果希望減少拷貝,開發(fā)更加高效的 Android 音頻應(yīng)用,則建議使用 Android NDK 提供的 OpenSL ES API 接口,它支持在 native 層直接處理音頻數(shù)據(jù)。

達(dá)孜ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

OpenSL ES 從 Android 2.3 開始就提供了,但是 Android 官方關(guān)于 OpenSL ES 的文檔非常少,網(wǎng)上資料也相對貧乏,再加上它的接口采用的是面向?qū)ο蟮?C 接口,不是特別簡單易懂,因此學(xué)習(xí)起來不是那么容易,我計(jì)劃通過兩篇文章來介紹一下這套框架,希望能對初學(xué)者有所幫助。

本文不準(zhǔn)備介紹 OpenSL ES 的工作原理和函數(shù)使用(這些將會(huì)在下一篇文章中介紹),而是從宏觀的角度簡單介紹一下 OpenSL ES 概況,讓初學(xué)者了解這套 API 是干什么的,可以做哪些事,不能做哪些事,最后給出一些參考示例代碼和資源鏈接。

1. OpenSL ES 是什么?

OpenSL ES 全稱是:Open Sound Library for Embedded Systems,是一套無授權(quán)費(fèi)、跨平臺(tái)、針對嵌入式系統(tǒng)精心優(yōu)化的硬件音頻加速API。它為嵌入式移動(dòng)多媒體設(shè)備上的本地應(yīng)用程序開發(fā)者提供標(biāo)準(zhǔn)化, 高性能, 低響應(yīng)時(shí)間的音頻功能實(shí)現(xiàn)方法,并實(shí)現(xiàn)軟硬件音頻性能的直接跨平臺(tái)部署,降低執(zhí)行難度,促進(jìn)高級音頻市場的發(fā)展。(來自 百度百科)

一句話概述:OpenSL ES 是一套針對嵌入式平臺(tái)的音頻標(biāo)準(zhǔn)。

2. Android 與 OpenSL ES 是什么關(guān)系?

Android 2.3 (API 9) 即開始支持 OpenSL ES 標(biāo)準(zhǔn)了,通過 NDK 提供相應(yīng)的 API 開發(fā)接口,下圖是 Android 官方給出的關(guān)系圖(出處:這里):

Android音頻開發(fā)(6):使用 OpenSL ES API(上)

由該圖可以看出,Android 實(shí)現(xiàn)的 OpenSL ES 只是 OpenSL 1.0.1 的子集,并且進(jìn)行了擴(kuò)展,因此,對于 OpenSL ES API 的使用,我們還需要特別留意哪些是 Android 支持的,哪些是不支持的,具體相關(guān)文檔的地址位于 NDK docs 目錄下:

NDKroot/docs/Additional_library_docs/opensles/index.html
NDKroot/docs/Additional_library_docs/opensles/OpenSL_ES_Specification_1.0.1.pdf

3. 可以做什么?不能做什么?

下面總結(jié)一下 Android OpenSL ES 的特點(diǎn)以及不支持的功能。

特性:

(1)C 語言接口,兼容 C++,需要在 NDK 下開發(fā),能更好地集成在 native 應(yīng)用中

(2)運(yùn)行于 native 層,需要自己管理資源的申請與釋放,沒有 Dalvik 虛擬機(jī)的垃圾回收機(jī)制

(3)支持 PCM 數(shù)據(jù)的采集,支持的配置:16bit 位寬,16000 Hz采樣率,單通道。(其他的配置不能保證兼容所有平臺(tái))

(4)支持 PCM 數(shù)據(jù)的播放,支持的配置:8bit/16bit 位寬,單通道/雙通道,小端模式,采樣率(8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 Hz)

(5)支持播放的音頻數(shù)據(jù)來源:res 文件夾下的音頻、assets 文件夾下的音頻、sdcard 目錄下的音頻、在線網(wǎng)絡(luò)音頻、代碼中定義的音頻二進(jìn)制數(shù)據(jù)等等

不支持:

(1)不支持版本低于 Android 2.3 (API 9) 的設(shè)備

(2)沒有全部實(shí)現(xiàn) OpenSL ES 定義的特性和功能

(3)不支持 MIDI 

(4)不支持直接播放 DRM 或者 加密的內(nèi)容

(5)不支持音頻數(shù)據(jù)的編解碼,如需編解碼,需要使用 MediaCodec API 或者第三方庫

(6)在音頻延時(shí)方面,相比于上層 API,并沒有特別明顯地改進(jìn)

4. 用 OpenSL ES 開發(fā)音頻應(yīng)用有什么好處 ?

(1)避免音頻數(shù)據(jù)頻繁在 native 層和 Java 層拷貝,提高效率

(2)相比于 Java API,可以更靈活地控制參數(shù)

(3)由于是 C 代碼,因此可以做深度優(yōu)化,比如采用 NEON 優(yōu)化

(4)代碼細(xì)節(jié)更難被反編譯

(5)其他,待添加

5. 示例代碼

有個(gè)老外(Victor Lazzarini)為 Android OpenSL ES API 寫了一篇不錯(cuò)的介紹,并給出了一些示例代碼,鏈接如下:

https://audioprograming.wordpress.com/2012/03/03/android-audio-streaming-with-opensl-es-and-the-ndk/

我提取了其中的兩個(gè)文件,修改了一下,整理到我的 AudioDemo 示例中了,個(gè)人覺得有更好地演示效果,地址如下:

https://github.com/Jhuster/AudioDemo

6. 有哪些不錯(cuò)的資源 ?

《OpenSL ES Basics》

《Native Audio: OpenSL ES for Android》

《Android Audio Architecture》

《OpenSL ES for Android》

《Tutorials for OpenSL ES for Android》

《Android.NDK.Beginner's.Guide.pdf》

《Getting Started with OpenSL on Android》

《Android audio streaming with OpenSL ES and the NDK》

分享標(biāo)題:Android音頻開發(fā)(6):使用OpenSLESAPI(上)
本文來源:http://aaarwkj.com/article36/iihdpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站排名網(wǎng)站導(dǎo)航、電子商務(wù)、微信小程序、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
精品成人18亚洲av播放| 国产av综合一区二区三区最新| 精品国产一区二区三区卡| 男人av天堂手机在线| 很黄很刺激的视频中文字幕 | 男人天堂一区二区av| 午夜激情在线观看国产| 久久综合热这里只有精品| 亚洲美女插入av网络导航| 国产探花猛操性感美女| 久久亚洲综合色一区二区三区| 国产精品男人在线播放| 免费中文字幕av电影| 人妻少妇av免费久久蜜臀| 精品一区二区视频在线观看网站 | 天天操夜夜骑日日干| 色综合色很天天综合色| 国产黄片大秀在线观看| av毛片在线观看地址| 少妇欧美日韩精品在线观看| 国产精品观看在线亚洲人成网| 国产一区二区不卡在线播放| 欧美日韩综合在线第一页| 亚洲日本不卡在线一区二区 | 香蕉视频欧美日韩国产| 欧美精品日韩中文字幕在| 亚洲巨人精品福利导航| 人妻熟妇一区二区三区成人| 国产精品日本一区二区| 91国产自拍在线视频| 日本三级黄色免费的网站| 韩国av高清在线观看| 91午夜福利视频在线观看| 亚洲午夜一区二区三区精品| 老熟妇奂伦一区二区三区| 亚洲一区在线观看蜜臀| 欧美日韩一区二区高清在线| 国产精品伦理一区二区三区| 日韩黄色精品中文视频| 声入人心第一季在线观看| 日韩不伦高清一区二区三区 |