Android下音訊的測試程式tinyalsa(錄音,放音,檢視音效卡資訊)
目前Linux中主流的音訊體系結構是ALSA(Advanced Linux Sound Architecture),ALSA在核心驅動層提供了alsa-driver,在應用層提供了alsa-lib,應用程式只需要呼叫alsa-lib提供的API就可以完成對底層硬體的操作。說的這麼好,但是Android中沒有使用標準的ALSA,而是一個ALSA的簡化版叫做tinyalsa。Android中使用tinyalsa控制管理所有模式的音訊通路,我們也可以使用tinyalsa提供的工具進行檢視、除錯。
編譯tinyalsa後生成四個小工具:
- tinymix
- tinyplay
- tinycap
- tinypcminfo
編譯命令:
- mmm external/tinyalsa/
下面依次演示一下四個小工具的使用:(以下使用聯芯科技的LC1860平臺配合LC1160電源+音訊晶片,截圖及演示效果均來自M7301P5測試機)
1, tinypcminfo
tinypcminfo用於檢視pcm通道的相關資訊
輸入:
- tinypcminfo -D /proc/asound/cards
結果如下:
從上面獲得的資訊中可以知道PCM的取樣率,通道個數,取樣點數等資訊。
其中 –D 後邊跟的引數為音效卡檔案,一般位於/proc/asound/cards。可以使用- cat /proc/asound/cards
2, tinymix
如下圖所示,直接輸入tinymix可以得到音訊通路相關的各項配置引數。也可以通過新增引數修改其中的配置,如希望提高ADC1 Gain值到110,輸入tinymix 12 110即可。
單獨檢視上述資訊比較難以梳理,配合音訊通路圖會更加清晰。
上圖中紅色字型標明瞭LC1160與麥克風、耳機等硬體裝置的連線關係。(注:M73xx專案由於內部ClassD不滿足要求,喇叭連在了AUX通路上)
各個通路上的增益調節部分使用綠色字型標出了與tinymix中選項的對應關係。
圖中加號與Mux是通路選擇開關,對應tinymix中的其它的選項,用於在各種模式下切換音訊通道。此部分比較多沒有在圖中一一標出,但根據已知的通路名是比較容易對應的。
圖中黃色箭頭標出的是通話時下行音訊資料流,從PCM介面進入到LC1160,然後經過MonoDAC進行數模轉化後送到聽筒。
圖中紫色箭頭標出的是通話時上行音訊資料流,從主MIC採集聲音後,經過ADC1進行模數轉換後由PMC的DO線送出3, tinyplay
tinyplay是一個簡易的音樂播放器,一般用於播放測試。tinyplay只能播放wav原始格式的音樂,不能進行Mp3等格式的解碼,支援44.1kHz,48kHz取樣率的wav音樂。
在呼叫tinyplay播放音樂之前需要先使用tinymix切換好音訊通路:
- tinymix 0 I2SR //選擇Stereo DACR的音源為i2s
- tinymix 1 I2SL //選擇Stereo DACL的音源為i2s
- tinymix 200//將Stereo DAC左右聲道的mute關閉
- tinymix 241//開啟喇叭的外部PA晶片
- tinymix 401//將Stereo DACR的聲音路由到AUX口輸出(因為實驗機器喇叭掛載AUX介面上)
- tinymix 411//將Stereo DACR的聲音路由到AUX口輸出(因為實驗機器喇叭掛載AUX介面上)
- tinyplay z.wav
4, tinycap
tinycap是一個簡易的錄音軟體,一般用於錄音測試。
在呼叫tinycap錄音之前需要先調整好音訊通路:
- tinymix 1430//mic1 volume
- tinymix 191//mic1 boost on
- tinymix 261//adc1 -> mic1
- tinymix 50 ADC1//i2sR out -> adc1
- tinymix 51 ADC1//i2sL out -> adc2
- echo "0xfb 0x01" > /sys/devices/platform/comip_codec/lc1160_reg //bias poweron
- echo "0xad 0x08" > /sys/devices/platform/comip_codec/lc1160_reg //adc1 enable
- echo "0xac 0x01" > /sys/devices/platform/comip_codec/lc1160_reg //mic1 pga enable
- echo "0x3b 0xcc" > /sys/devices/platform/comip_codec/lc1160_reg //ldo
- echo 2 > /sys/bus/i2c/drivers/fm2018/0-0060/mode //bypass 外部的回聲消除音訊晶片(M730x專案特有)
- tinycap /sdcard/Music/l.wav
錄音結束通過ctrl+C強行退出即可,之後在/sdcard/Music/路徑下檢視到l.wav音訊檔案
使用adb pull到本地電腦中,使用goldwave播放、檢視。
- adb pull /sdcard/Music/l.wav d:\
另外:
LC1160的暫存器是分頁的,即同一個地址上存在兩個不同含義的暫存器,通過控制0xFC暫存器中的值來切換到第二功能頁- echo "0xfc 0x01" > /sys/devices/platform/comip_codec/lc1160_reg
- cat /sys/devices/platform/comip_codec/lc1160_reg
- echo "0xfc 0x00" > /sys/devices/platform/comip_codec/lc1160_reg
相關推薦
Android下音訊的測試程式tinyalsa(錄音,放音,檢視音效卡資訊)
目前Linux中主流的音訊體系結構是ALSA(Advanced Linux Sound Architecture),ALSA在核心驅動層提供了alsa-driver,在應用層提供了alsa-lib,應用程式只需要呼叫alsa-lib提供的API就可以完成對底層硬體的操作。說的這麼好,但是Android中沒有使
Android下音訊tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)--------mark詳細
Android下音訊tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo) 2017年05月29日 10:02:03 songze_lee 閱讀數:10224更多 個人分類: Android系統 轉載於:http://b
Android下音訊tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)
轉載於:http://blog.csdn.net/radianceblau/article/details/64125411 audio程式碼比較複雜,除了音訊引數,我們平時客製化的地方不多。所以沒有太深入瞭解。 建議先抽空看看如下程式碼: kernel,Linux alsa 架
在window下用android-ndk編譯android下可執行程式的方法。
環境,win7,與android-ndk-r13b-windows-x86_64,把android-ndk-r13b-windows-x86_64解壓在目當中就可,不用安裝 1,只用gcc工具 D:\android-ndk\android-ndk-r13b\toolcha
android下如何實現EditText顯示隱藏密碼的實現,
在Google釋出了support:design:23+以後我們發現有這麼一個東西TextInputLayout,先看下效果圖: <android.support.design.widget.TextInputLayout a
Android下音訊進行轉碼(一)
一. 音訊的簡介 先從音訊壓縮的原理講起, 人的聽力範圍是20hz--20khz, 而根據奈奎斯特定理, 要想不產生低頻失真,則取樣頻率至少是錄製的最高頻率的兩倍。 所以CD音質的取樣頻率是4410
Android下屏保程式的開發--須知
1、註冊一個BroadcastReceiver,用於接收ACTION_SCREEN_OFF事件,當接收到這個事件時,開啟自定義的屏保畫面。 Intent.ACTION_SCREEN_OFF. IntentFilter filter = new IntentFilter(I
Linux平臺音訊測試程式
一個音訊測試程式,錄音並播放。程式碼如下: #include <unistd.h> #include <fcntl.h> #include <sys/types.h>
前端課程大集結!51cto 1024程式設計師節大放送,通過以下連結購買,可享受附加前端問題答疑服務
http://edu.51cto.com/sd/459c1 HTML5開發APP-框架MUI(仿支付寶案例)http://edu.51cto.com/sd/26227 NodeJS基礎、Express實戰視訊課程【後臺管理系統】【楊勝強老師-前端系列課程】http://edu.51cto.com/sd/a
android將給定圖片維持寬高比縮放後,擷取正中間的正方形部分
/** * 將給定圖片維持寬高比縮放後,擷取正中間的正方形部分。 * @param bitmap 原圖 * @param edgeLength 希望得到的正方形部分的邊長 * @return 縮放擷取正中部
【從零開始學日文】#2 搞懂日文發音的5個特徵!濁音,促音,拗音..etc + 日文Q&A回答初學者朋友問的問題!
片假名(片仮名 カタカナ katakana)是日文的一種,與平假名合稱"假名"。片假名在平安時代為了訓讀而產生,但片假名字形在明治時期才統一確定下來,此前一個發音往往有多個片假名對應存在。 具體發音請觀看Youtube https://www.youtube.com/wa
linux 下顯示卡 網絡卡 音效卡 資訊的檢視
各個linux版本間命令可能不同 以下僅供參考 1, 主機板資訊 .檢視主機板的序列號 -------------------------------------------------- #使用命令 dmidecode | grep -i 'serial
android 系統音訊tinyalsa,調節音訊方法
目前linux中主流的音訊體系結構是ALSA(Advanced Linux Sound Architecture),ALSA在核心驅動層提供了alsa-driver,在應用層提供了alsa-lib,應用程式只需要呼叫alsa-lib提供的API就可以完成對底層硬體的操
Android studio測試程式教程(在各種環境下)(上)
一、Android studio匯出apk 在android studio匯出的apk分為4種,一種是未簽名除錯版apk,一種是未簽名發行版apk,一種是已簽名除錯版apk,還有一種是已簽名發行版apk。以下將介紹這4種apk如何匯出。 (一)除錯版apk與發行版apk區
Android studio測試程式教程(在各種環境下)(中)
最近用一臺紅米4高配版(6.0)以及ViVo X9(7.1)來做測試機,它是小米MIUI系統的最新版本MIUI8,我的AS是2.3版本,在網上查看了相關問題,在小米5和紅米note4x等配備了MIUI8系統的手機都遇到了相同的問題,所以我相信大家第一次用MIUI8系統手機來測
linux環境下C語言實現非阻塞方式讀取字串資料的串列埠測試程式,即串列埠工具的編寫
一、前言 1.1 關於串列埠測試工具,網上已經有整合好的應用程式提供大家使用,但其只提供功能介面,內部具體怎麼實現的還需要自己去探索; 1.2 關於串列埠通訊的測試程式在網上已經是數見不鮮,但也不排除很多是直接“參考”別人的(ctrl+c),而且很多程式
Windows 下搭建 Appium + Android+python 自動化測試環境
細節 事情 android view package 效果 框架 比較 framework 前言 本來並不打算寫這麽一篇文章,但是實踐下來發現網上的各種教程裏大致有兩個問題。一是文章有些跟不上時代,目前android開發和測試的技術更新都比較快,內容有些過期。二是細節部分不
Android下apk安裝的過程,安卓項目的目錄結構
版本 自動 過程 apk drawable 分辨 jar 程序 軟件安裝 安卓下軟件安裝的過程: 1:拷貝XXX.apk到/data/app/XXX-1.apk 2.在/data/data目錄下創建一個文件夾 文件夾名稱 當前應用程序的包名. 安卓項目的目錄結構:
shell解壓壓縮包,求包下所有文本的錄音時長總和
ase tdi tgz array net then arpa fun ucc #!/bin/bash#from為壓縮包批次所在目錄#basetarpath 為統計每批次總時長from=$1basetarpath=$2suffix="tgz"todir=
【小程式】分頁載入資料,下拉載入更多,上拉重新整理
【 小程式】分頁載入資料,下拉載入更多,上拉重新整理 分頁載入的優點就不多說了,下面主要記錄一下幾個問題點。 scroll-view元件不能用在頁面根佈局中,不然觸發不了系統的onPullDownRefresh()、onReachBottom()回撥。 在Page頁