arm linux利用alsa驅動並使用usb音頻設備

来源:http://www.cnblogs.com/dakewei/archive/2017/10/13/7660058.html
-Advertisement-
Play Games

一.背景: arm linux的內核版本是3.13.0 二.準備工作 添加alsa驅動到內核中,也就是在編譯內核的時候加入以下選項: 接下來就重新編譯內核即可 三.交叉編譯alsa-lib和alsa-utils (alsa-utils是一系列的音頻設備控制工具,而alsa-lib是alsa-util ...


一.背景:

arm linux的內核版本是3.13.0

二.準備工作

添加alsa驅動到內核中,也就是在編譯內核的時候加入以下選項:

接下來就重新編譯內核即可

三.交叉編譯alsa-lib和alsa-utils (alsa-utils是一系列的音頻設備控制工具,而alsa-lib是alsa-utils依賴的庫,所以先將alsa-lib編譯好)

3.1交叉編譯alsa-lib

3.2交叉編譯alsa-utils

四.將三編譯好的庫及工具都拷貝至arm開發板(筆者通常直接將編譯好的都壓縮好之後再複製到開發板進行解壓,以避免直接複製造成軟鏈接無法複製的情況)

五.使用alsa-utils中的工具進行各類操作

5.1錄音:

arecord -D "plughw:0,0" demo.wmv

5.2播放:

aplay -D "plughw:0,0" demo.wmv

 5.3獲取控制信息:

amixer controls

輸出信息如下:

numid=3,iface=MIXER,name='Master Mode Switch'
numid=29,iface=MIXER,name='Master Mux'
numid=4,iface=MIXER,name='Master Quality Switch'
numid=2,iface=MIXER,name='Master Switch'
numid=1,iface=MIXER,name='Master Volume'
numid=7,iface=MIXER,name='PCM Mode Switch'
numid=6,iface=MIXER,name='PCM Switch'
numid=5,iface=MIXER,name='PCM Volume'
numid=9,iface=MIXER,name='Mic Switch'
numid=8,iface=MIXER,name='Mic Volume'

5.4 獲取錄音時的音量大小

從5.3可以獲取到”numid=8,iface=MIXER,name='Mic Volume'“這條信息,從Mic Volume可以得知是Mic的音量

amixer cget numid=8,iface=MIXER,name='Mic Volume'

5.4設置錄音時的音量大小 

amixer cset numid=8,iface=MIXER,name='Mic Volume' 255 

六:註意事項:

如果將編譯好的alsa-utils中的工具複製到fat32格式的存儲設備的時候,註意fat32是不支持軟鏈接的,此時需要直接複製一個aplay並將名稱改為arecord:

cp aplay arecord

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • case when 對錶進行條件分組 case簡單函數 case age when then select name , sex , age , ( case age /*when 條件成立顯示then中內容 then 成立是顯示 else 不成立顯示 end*/ when age = 18 the ...
  • 1、匯流排的基本概念 1.為什麼要用匯流排? 馮諾依曼將電腦分為五部分:運算器、存儲器、控制器、輸入設備和輸出設備。要將這些設備連接起來需要較多的通路。 2.匯流排 匯流排式連接各個部件的信息傳輸線,是各個部件共用的傳輸介質。 3.匯流排上信息的傳送 串列:一次傳輸一位信號。 並行:傳輸距離較短, 4.匯流排 ...
  • 相信有很多鞋童和我一個樣是一枚Linux碼農(我現在還是嵌入式方向). 做Linux開發勢必需要一個Linux環境, 大多數開發者會首先選擇一個Linux發行版, 其中Ubuntu LTS版本應該是選取最多的一個了, 原因也很簡單, 該發行版簡單易用的同時足夠穩定和普及. 選擇完發行版就要選擇怎麼安 ...
  • Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。 1 、Shell中的特殊符號 1.1 $ 美元符號。用來表示變數的值。如變數NAME的值為Mike,則使用$NA ...
  • 下圖是從測試拷64位windbg抓的dump文件拖到32位windbg查看線程堆棧信息的效果。 那麼我們載入一下wow64exts模塊,因為需要這個模塊幫助把64位的dump,轉換成32位的dump。命令就是.load wow64exts 再次輸入!sw 。這樣就可以像在32位模式下分析dump一樣 ...
  • 1.查看系統是否已經安裝git git --version 2.CentOS7 yum 安裝git yum install git ...
  • 1》Subversion版本控制簡介: Subversion(SVN)是一款自由開放的版本控制軟體,可以管理文件,文件夾以及記錄他們的修改狀況,常用來幫助我們管理軟體開發的源代碼或是公司手冊文檔。SVN通過將文檔導入至版本庫中進行管理,版本庫類似於文件伺服器,但比文件伺服器更強大的是,它可以記錄用戶 ...
  • 更新時間: Linux Usage 緣起:最近將系統更換為Linux,雖然之前有用過,但只是當作嘗試,未當為主系統,這次下定決心以它為主系統,懶得去糾結使用win的一種不道德感及不爽感,游戲及娛樂與人與己無益,放棄 https://mirrors.tuna.tsinghua.edu.cn/linux ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...