zoukankan      html  css  js  c++  java
  • arm linux利用alsa驱动并使用usb音频设备

    一.背景:

    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

  • 相关阅读:
    编程题#2: 魔兽世界之二:装备
    程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1
    【转】C++动态创建二维数组,二维数组指针
    HDU-2571命运
    HDU-1203 I NEED A OFFER!
    HDU-1003 Max Sum
    HDU2196-Computer
    HDU-1520 Anniversary party
    ChineseHelper(获取汉字字符串的首拼)
    车牌号正则表达式(新能源车牌)
  • 原文地址:https://www.cnblogs.com/dakewei/p/7660058.html
Copyright © 2011-2022 走看看