alsa

alsa 音频编程简单的例子 (总结)

醉酒当歌 提交于 2019-12-04 03:34:25
1.源代码安装alsa 库,否则编译例子不会通过。原文引用http://apps.hi.baidu.com/share/detail/17289294 2.编译简单的播放和录音的例子。 引用原文http://tieba.baidu.com/f?kz=822509370 3alsa源码编译过程中的错误及应对 http://www.zengnotes.com/post-21.html 实验本人都是在 ubuntu 11.04中验证通过。 /***************************************************************************第一部分*************************************************************************/ 昨晚帮群里人解决的问题,呵呵,严格的说,不是我一个解决的,还有大牛 Felix 的帮忙。给人解决问题的过程,也是自己学习知识的过程。 有些新人,在安装 ubuntu 后,系统没有声音,多半是因为 Ubuntu 的 “ 声音控制驱动: Alsa” 没有正确识别出电脑的声卡。这个问题的解决方法,虽然有点复杂,但还有值得去尝试的,毕竟没有人想在 Ubuntu 的世界里,过没声音的日子 ~ 解决方法:去 Alsa 的官方网站,分别下载 3 个

ALSA Timer

依然范特西╮ 提交于 2019-12-04 03:34:03
0. 前言 本文主要介绍alsa-timer相关代码的分析内容。 1. 介绍 官方文档可以参见下面的链接: ALSA Timer 官网上对Timer的介绍很简单,我根据自己的使用情况总结如下: Timer被设计为使用声卡内部的定时器,但是也可以被其它定时器驱动,比如内核中的 snd_timer.ko 就是一个基于系统定时器的Timer。 Timer使用循环Buffer来存储信息。 定时器最高精度是ns级,但实际的精度依赖于时钟源。 可以使用 NONBLOCK 或 BLOCK 的模式打开定时器。 如果需要查询Timer的状态,需要使用 timer_query 的接口。 我们后面主要是基于NONBLOCK模式进行分析。 2. Timer ID Timer ID主要由以下5个字段组成: 名称 值 说明 class 区分声卡类别 SNDRV_TIMER_CLASS_GLOBAL 全局声卡,也就是snd_timer.ko提供的默认Timer,只能有一个 SNDRV_TIMER_CLASS_CARD Card提供的声卡 SNDRV_TIMER_CLASS_PCM PCM提供的声卡 sclass 区分声卡子类 SNDRV_TIMER_SCLASS_APPLICATION 表明是应用程序使用 card 声卡ID - - device 区分时钟源 SNDRV_TIMER_GLOBAL_SYSTEM

ALSA编译中的一些问题总结

淺唱寂寞╮ 提交于 2019-12-04 03:33:48
想在ARM上跑一个自己写的alsa应用程序,为了编译的问题纠结了一晚上,把自己的一些经验写下来 首先是安装alsa-lib 从网上找的交叉编译方法: ALSA 交叉编译 1, 下载 alsa-lib-1.0.15rc2.tar.bz2 。 http://download.chinaunix.net/download/0001000/358.shtml 或者 http://www.alsa-project.org/main/index.php/Main_Page 2, tar jxvf alsa-lib-1.0.15rc2.tar.bz2 cd alsa-lib-1.0.15rc2 ./configure --host=arm-none-linux-gnueabi --prefix=/home/part2/alsa-lib make & make install 这时在 /home/part2/alsa-lib 目录下就产生了一些头文件了。 这部还算顺利,因为写的是一个大程序用的是QT开发环境,加上对Makefile的理解还不深,期间遇到了很多问题。 主要是找不到alsa/asoundlib.h,编译时找不到-lasound 程序在pc上跑的好好的一用arm-linux-g++就出现一大堆问题 这是我的pro文件: TARGET = alsa_test_arm2 TEMPLATE =

alsa与PulseAudio

吃可爱长大的小学妹 提交于 2019-12-04 03:33:26
alsa包括alsa driver, alsa lib等 pulse audio可以使用alsa driver或者其他驱动接口,实现的一个比alsa lib更加强大的音频服务程序。 如果做语音,回声消除,不知道用pulse audio好不好! 2014.12.04 来源: CSDN 作者: yazhouren 链接: https://blog.csdn.net/yazhouren/article/details/41723781

【总结】查看Linux系统ALSA

假如想象 提交于 2019-12-04 03:33:01
参考一 参考二 参考三 如何查看ALSA的版本: $ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version k4. 11.4 - 1 .el7.centos.x86_64. 如何查看ALSA相关的驱动: $ lsmod | grep snd snd_hda_codec_hdmi 49152 1 snd_hda_codec_realtek 90112 1 snd_hda_codec_generic 69632 1 snd_hda_codec_realtek snd_hda_intel 40960 0 snd_hda_codec 126976 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek snd_hda_core 81920 5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek snd_hwdep 16384 1 snd_hda_codec snd_seq 65536 0 snd_seq_device 16384 1 snd_seq snd_pcm

alsa lib和utils工具包移植总结

前提是你 提交于 2019-12-04 03:32:43
在移植alsa的lib和utils工具包时前需要准备三个包(都可以在china unix上下载到): 1、 alsa-lib (应用程序使用的alsa库) 2、 alsa-utils (测试音频使用的各种工具) 3、 libiconv (用来编码转换的库) 第一步: 移植alsa-lib。解压出音频库的源码,如tar xvjf alsa-lib-1.0.22.tar.bz2,再cd alsa-lib-1.0.22,生成Makefile,使用命令如下:./configure --host=arm-linux --prefix=$PWD/../output/arm-linux --enable-static --enable-shared --disable-python --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib 成功生成Makefile之后,执行make进行编译,若编译中提示' atomic_add'之类的重复定义的错误,则将configure和configure.in中“-D__arm__”给去掉。编译通过之后,再执行make install(需要注意,在执行前使用su进行登陆再执行make install,不能使用sudo make install方式,否则安装不会成功)

【ALSA】关于alsa的总结

本秂侑毒 提交于 2019-12-04 03:32:22
一. alsa展现的三层结构: (1)audio interface: audio interface就是声卡,它含有hardware buffer,注意,这个hardware buffer是在声卡里面,不是内存。 (2)computer: 这个指的是计算机的内核和驱动(驱动由alsa提供),当(1)的audio interfacce引发中断,内核会捕捉到,再把处理移交alsa。 (3)application: 这个就是你写的程序,你开辟一个buffer,比如playback,就交给alsa来play。 在上面的框架下,流程如下: (1)playback: application开辟一个buffer,填上数据,调用alsa接口,alsa把buffer数据复制到其驱动的空间,再把数据交给 hardware buffer。 (2)record: 同playback,相似的。 二. 细节: 按照上面的流程,其中有许多细节我们可以加以控制,这里仅仅指出应用程序需要关心的: 1) 操作的设备: 在alsa驱动这一层,目前为止,抽象出了4层设备: 一是如hw:0,0,二是plughw:0,0,三是default:0,四是default至于 一是清楚了,二和二以上可以做数据转换,以支持一个动态的范围,比如你要播放7000hz的东西,那么就可以用二和二以上的。而你用7000hz作为参 数,去设置一

ALSA调试总结

╄→尐↘猪︶ㄣ 提交于 2019-12-04 03:31:40
刚刚解决了一个播放不出声音的问题,这里总结一下,在TI平台上调试ALSA的一些方法和步骤。 平台ALSA信息 ls /dev/snd/ controlC0 controlC1 pcmC0D0c pcmC0D0p pcmC0D10p pcmC0D11c pcmC0D12p pcmC0D13p pcmC0D14c pcmC0D14p pcmC0D15c pcmC0D15p pcmC0D16c pcmC0D16p pcmC0D17c pcmC0D17p pcmC0D18c pcmC0D19c pcmC0D1c pcmC0D20c pcmC0D2c pcmC0D2p pcmC0D3p pcmC0D4p pcmC0D5c pcmC0D5p pcmC0D6p pcmC0D7c pcmC0D7p pcmC0D8p pcmC0D9c pcmC1D0p timer cat /proc/asound/cards 0 [SDP4430 ]: OMAP4 – SDP4430 TI OMAP4 Board 1 [OMAP4HDMI ]: – OMAP4HDMI OMAP4HDMI cat /proc/asound/devices 2: [ 0-20]: digital audio capture 3: [ 0-19]: digital audio capture 4: [ 0-18]: digital

alsa_aplay not recording on android

守給你的承諾、 提交于 2019-12-03 21:44:14
I have just started working on android and I am trying to understand how android audio sub-system (alsa) works. I am running an android image in virtual-box running on windows-7 (64 bit). I was fiddling with alsa-utils to record sound. I tried alsa_aplay -C -f S16_LE -c 2 -r 44100 -d 5 foo.wav it said something like: Recording WAVE foo.wav : Signed 16 bit little endian, rate 44100, stereo However, the output file created appears to be blank (after the wav file header). od -x foo.wav 0000000 4952 4646 7574 000d 4157 4556 6d66 2074 0000020 0010 0000 0001 0002 ac44 0000 b110 0002 0000040 0004

Call recording - make it work on Nexus 5X (rooting or custom ROM possible)

陌路散爱 提交于 2019-12-03 14:28:04
问题 I'm attempting to use AudioRecord with AudioSource.VOICE_DOWNLINK on Nexus 5X, Android 7.1 (my own build from AOSP). I'm already past the permissions stage - moved my APK to privileged apps, made an adjustment to AudioRecord in Android source to stop throwing an exception about this source. Now I'm getting empty recording buffers during a phone call. I know that there are a lot of call recording apps, and they work on other devices. I've also seen certain apps that can perform some hack on a