日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android底层开发之Audio HAL Android Audio Overview

發(fā)布時間:2025/5/22 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android底层开发之Audio HAL Android Audio Overview 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://blog.csdn.net/kangear/article/details/44939429

Android底層開發(fā)之Audio HAL

在Android音頻底層調試-基于tinyalsa中以「拋開Android的天生復雜,回歸嵌入式Linux的本質」的方式介紹如何調試Linux內核中的音頻驅動。
這里向上再伸展一下進入HAL層,看是如何將tinyalsa封裝給Frameworks使用的。

基于4.2.2版本源碼進行討論。Android官方教程是Audio Implementing the HAL.

一個完整的Android音頻系統(tǒng)架構如圖所示:

?

Android Audio Overview

http://blog.csdn.net/tjy1985/article/details/9942637

音樂播放器是手機中重要的娛樂應用,我們在開發(fā)播放器有可能用到mediaplayer,或者AudioTrack來播放音頻文件,對應應用開發(fā)者來說,我們只要了解了暴露出來的API就可以了,但是光了解API還是不能全面的理解設計者的理念和思路,無法清楚音頻如何選擇什么的設備進行輸出。下面我們本著探討的目的來了解下audio的架構,完善我們對audio的了解。

首先看下整個audio的框架結構。

從上圖我們可以大概了解了audio的整個架構,各個部分分工明確,下面我們來具體看下他們的具體作用。

Java API?

Mediaplayer , Audiotrack, AudioService, AudioManager

Mediaplayer 和AudioTrack是我們播放音頻時供應用選擇的接口,這兩者有什么區(qū)別呢?mediaplayer運用比較廣泛了,它可以把未解碼的媒體文件進行解碼,然后交給設備去輸出,而AudioTrack的功能就比較單一了,它只能播放PCM流的文件(即解碼后的文件)。

AudioService監(jiān)聽來自HDMI, FM等應用的intent,通知audiosystem,它其實也監(jiān)控者音量,實現(xiàn)音量在UI上的同步。

AudioManger給上層提供了訪問音量的接口,并控制ringer? mode。

AudioSystem 相當于AudioManager 和AudioService的內部類,只供他倆調,設置phone的狀態(tài)。

User space C++

Multimedia framework – StageFright/AwesomePlayer

1)?????? player的選擇,媒體文件的解析

2)?????? 選擇解碼器,跟OpenMAX IL打交道,解碼

AudioFlinger

1)?????? 管理者整個audio的輸入輸出設備

2)?????? 把多個audiostream整合成一個PCM audio流,指向安排好的輸出設備去輸出

轉載于:https://www.cnblogs.com/pengxinglove/p/5469559.html

總結

以上是生活随笔為你收集整理的Android底层开发之Audio HAL Android Audio Overview的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。