1. 程式人生 > >Android音訊系統

Android音訊系統

Muti-media時多種形式的媒體內容(文字、音訊、視訊、圖片、動畫)的組合。多媒體可以是“MediaPlayer和MediaRecorder”的實現,Android的一大特性時高度封裝,提高了軟體的開發效率。這也使得整個多媒體系統顯得異常龐大,各種類定義、C++庫、Java實現,現在我們從音訊基礎知識、底層框架分析,桌布擴充套件延伸到上層應用。
 主要包括:
-音訊的基礎知識
-AudioFlinger,AudioPolicyService和AudioTrack/AudioRecorder
    除去MediaPlayer,MediaRecorder這些與應用開發有之間關聯的部分,整個音訊系統的核心就是這三者,其中前兩者屬於SystemService,主流在mediaserver程序中,負責不斷處理AudioTrack/AudioRecorder的請求。另外,音訊的“回訪和錄製”從總體流程上分析都是類似的,所以本章側重於對回放過程的分析。
-音訊的資料流
    資料流處理是音訊系統管理的重點和難點之一,主要包括:正確規劃音訊流的路徑;保證音訊流以合理的速度傳輸到音訊裝置;跨程序的資料傳遞;
-音訊系統的上層建築

2.3 Android系統中的音訊框架
Android系統音訊框架的設計,儘可能的見底了上層實現與具體硬體裝置的耦合,

這裡寫圖片描述

這裡寫圖片描述

歡迎使用Markdown編輯器寫部落格

本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦:

  • Markdown和擴充套件Markdown簡潔的語法
  • 程式碼塊高亮
  • 圖片連結和圖片上傳
  • LaTex數學公式
  • UML序列圖和流程圖
  • 離線寫部落格
  • 匯入匯出Markdown檔案
  • 豐富的快捷鍵

快捷鍵

  • 加粗 Ctrl + B
  • 斜體 Ctrl + I
  • 引用 Ctrl + Q
  • 插入連結 Ctrl + L
  • 插入程式碼 Ctrl + K
  • 插入圖片 Ctrl + G
  • 提升標題 Ctrl + H
  • 有序列表 Ctrl + O
  • 無序列表 Ctrl + U
  • 橫線 Ctrl + R
  • 撤銷 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及擴充套件

Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的HTML頁面。 —— [ 維基百科 ]

使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立一個連結等,詳細語法參考幫助?。

本編輯器支援 Markdown Extra

,  擴充套件了很多好用的功能。具體請參考Github.

表格

Markdown Extra 表格語法:

專案 價格
Computer $1600
Phone $12
Pipe $1

可以使用冒號來定義對齊方式:

專案 價格 數量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

定義列表

Markdown Extra 定義列表語法:
專案1
專案2
定義 A
定義 B
專案3
定義 C

定義 D

定義D內容

程式碼塊

程式碼塊語法遵循標準markdown程式碼,例如:

@requires_authorization
def somefunc(param1='', param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter
... prompt'''

腳註

生成一個腳註1.

目錄

[TOC]來生成目錄:

數學公式

  • 行內公式,數學公式為:Γ(n)=(n1)!nN
  • 塊級公式:
x=b±b24ac2a

更多LaTex語法請參考 這兒.

UML 圖:

可以渲染序列圖:

Created with Raphaël 2.1.0張三張三李四李四嘿,小四兒, 寫部落格了沒?李四愣了一下,說:忙得吐血,哪有時間寫。

或者流程圖:

Created with Raphaël 2.1.0開始我的操作確認?結束yesno
  • 關於 序列圖 語法,參考 這兒,
  • 關於 流程圖 語法,參考 這兒.

離線寫部落格

即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。Markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。

使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。

部落格發表後,本地快取將被刪除。 

使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。

注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱

瀏覽器相容

  1. 目前,本編輯器對Chrome瀏覽器支援最為完整。建議大家使用較新版本的Chrome。
  2. IE9以下不支援
  3. IE9,10,11存在以下問題
    1. 不支援離線功能
    2. IE9不支援檔案匯入匯出
    3. IE10不支援拖拽檔案匯入
  1. 這裡是 腳註內容.

相關推薦

Android音訊系統適配《C++功能層》

繼上一篇Android音訊系統適配《java邏輯層》之後,我們需要知道整個功能介面的實現路由,其實相對而言要簡單很多。上一篇有提到AudioManager.java所呼叫的介面的最終實現是在AudioSystem.java。本篇我們就從AudioSystem.java開始。  

android音訊系統簡介

音訊基礎知識 聲音有哪些重要屬性呢? 響度(Loudness) 響度就是人類可以感知到的各種聲音的大小,也就是音量。響度與聲波的振幅有直接關係。 音調(Pitch) 音調與聲音的頻率有關係,當聲音的頻率越大時,人耳所感知到的音調就越高,否則就越低。 音色(Qualit

android 音訊系統/音效卡驅動 codec

0. 專用術語 1. 物理結構 2. 系統架構 本文基於Freescale IMX平臺Codec ALC5625為例。 0. 專用術語  ASLA - Advanced Sound Linux Architecture  OSS - 以前的Linux音訊體系結構,被ASL

Android音訊系統框架簡述

情景1:音效卡驅動比較複雜,提供一個lib層對驅動進行封裝,APP調驅動.。框圖如下: 情景2:廠家對音效卡的配置更瞭解,設定的引數在HAL層,HAL呼叫lib,傳入不同引數,提供給APP.框圖如下: 情景3: 如果多個APP播放聲音,把聲音合成播放,則多了AudioFlinger層。

ANDROID音訊系統散記之三:resample-2

這篇是承接上一篇提到的底層resample處理,以Samsung的tiny alsa-lib為例說明。 tiny alsa-lib 這個tiny alsa-lib位於android2.3.1-gingerbread/device/samsung/crespo/libau

Android 音訊系統:從 AudioTrack 到 AudioFlinger

1. Android 音訊框架概述 Audio 是整個 Android 平臺非常重要的一個組成部分,負責音訊資料的採集和輸出、音訊流的控制、音訊裝置的管理、音量調節等,主要包括如下部分: Audio Application Framework:音訊

Android音訊系統音訊框架

Android的音訊系統在很長一段時間內都是外界詬病的焦點。的確,早期的android系統在音訊處理上相比於iOS有一定的差距,這也是很多專業的音樂播放軟體開發商沒有推出Android平臺產品的一個重要原因。但這並不代表它的音訊框架一無是處,相反,基於Linux系統的

Android 音訊系統

http://blog.csdn.net/qianjin0703/article/details/6387662 0. 專用術語 1. 物理結構 2. 系統架構 本文基於Freescale IMX平臺Codec ALC5625為例。 0. 專用術語  ASLA - Advanced Sound Linux

Android音訊系統

Muti-media時多種形式的媒體內容(文字、音訊、視訊、圖片、動畫)的組合。多媒體可以是“MediaPlayer和MediaRecorder”的實現,Android的一大特性時高度封裝,提高了軟體的開發效率。這也使得整個多媒體系統顯得異常龐大,各種類定義、C

Android音訊系統音訊基礎

轉載請註明:LXS, http://blog.csdn.net/uiop78uiop78/article/details/8787779 對於一部嵌入式裝置來說,除了若干基礎功能外(比如手機通話、簡訊),最重要的可能就是多媒體了——那麼一個最簡單的問題,什麼是多媒體呢?

ANDROID音訊系統散記之二:resample

預設的情況下,Android放音的取樣率固定為44.1khz,錄音的取樣率固定為8khz,因此底層的音訊裝置驅動只需設定好這兩個固定的取樣率。如果上層傳過來的取樣率與其不符的話,則Android Framework層會對音訊流做resample(重取樣)處理。 Resamp

Android音訊系統之AudioFlinger(一)

在上面的框架圖中,我們可以看到AudioFlinger(下面簡稱AF)是整個音訊系統的核心與難點。作為Android系統中的音訊中樞,它同時也是一個系統服務,啟到承上(為上層提供訪問介面)啟下(通過HAL來管理音訊裝置)的作用。只有理解了AudioFlinger,才能以此

android 音訊系統—各模組

android 音訊系統java部分程式碼閱讀 音訊系統java相關的程式碼在./frameworks/base/media/java/android/media/目錄下 主要有如下檔案: AudioManager.java 為上層應用提供了聲音設定管理介面. AudioS

ANDROID音訊系統散記之二:resample-1

Android上的resample處理 預設的情況下,Android放音的取樣率固定為44.1khz,錄音的取樣率固定為8khz,因此底層的音訊裝置驅動只需設定好這兩個固定的取樣率。如果上層傳過來的取樣率與其不符的話,則Android Framework層會對音訊流做resample(重取樣)處理。 Re

Android音訊系統學習筆記

1、配置檔案/system/etc/asound.conf         alsa體系提供了這樣一種機制:應用層直接改變音訊codec的暫存器,具體而言:linux驅動中建立snd_kcontrol_new控制結構,並關聯到codec暫存器,asound.conf檔案通過

android 音訊系統java部分程式碼閱讀

音訊系統java相關的程式碼在./frameworks/base/media/java/android/media/目錄下主要有如下檔案:AudioManager.java為上層應用提供了聲音設定管理介面.AudioService.java    音訊設定服務, 它在Syst

Android ALSA音訊系統架構分析(1)----從Loopback瞭解Audio

/************************************ Author:劉江明 * Environment:MTK Android 6.0* Date:2017年05月25日***********************************/

Android(4.4)音訊系統之mediaserver服務啟動

在system/core/rootdir/init.rc中有這樣一段:service media /system/bin/mediaserver    class main    user media    group audio camera inet net_bt net

打造一個全命令行的Android構建系統

命令 匹配 pda 符號鏈接 創建 ack https vim ott IDE都是給小白程序猿的,大牛級別的程序猿一定是命令行控,終端控,你看大牛都是使用vim,emacs 就一切搞定” 這話說的盡管有些絕對。可是也不無道理。做開發這行要想效率高,自己主動化還真是

Android常用系統廣播

參考 -s locale pro ebo heads use man 重啟 查看詳情://關閉或打開飛行模式時的廣播Intent.ACTION_AIRPLANE_M;//充電狀態,或者電池的電量發生變化;//電池的充電狀態、電荷級別改變,不能通過組建聲;Intent.ACT