日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android底层开发之Audio HAL Android Audio Overview

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

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

Android底層開發之Audio HAL

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

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

一個完整的Android音頻系統架構如圖所示:

?

Android Audio Overview

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

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

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

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

Java API?

Mediaplayer , Audiotrack, AudioService, AudioManager

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

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

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

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

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的全部內容,希望文章能夠幫你解決所遇到的問題。

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