alsa库移植与声音编程分析Word文档下载推荐.docx

上传人:b****6 文档编号:18872600 上传时间:2023-01-01 格式:DOCX 页数:13 大小:23.69KB
下载 相关 举报
alsa库移植与声音编程分析Word文档下载推荐.docx_第1页
第1页 / 共13页
alsa库移植与声音编程分析Word文档下载推荐.docx_第2页
第2页 / 共13页
alsa库移植与声音编程分析Word文档下载推荐.docx_第3页
第3页 / 共13页
alsa库移植与声音编程分析Word文档下载推荐.docx_第4页
第4页 / 共13页
alsa库移植与声音编程分析Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

alsa库移植与声音编程分析Word文档下载推荐.docx

《alsa库移植与声音编程分析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《alsa库移植与声音编程分析Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

alsa库移植与声音编程分析Word文档下载推荐.docx

2.tar-xvfalsa-utils-1.0.23.tar.bz2 

--prefix=/opt/ALSA/alsa_utils/

--with-alsa-inc-prefix=/opt/ALSA/alsa_lib/include/

--with-alsa-prefix=/opt/ALSA/alsa_lib/lib/

--disable-alsamixer--disable-xmlto

注:

--with-alsa-inc-prefix:

指定头文件为alsa-lib编译出来的头文件路径

--with-alsa-prefix:

指定库文件为alsa-lib编译出来的库文件路径

mv:

cannotstat`t-ja.gmo'

解决方法是下载gettext:

apt-getinstallgettext

成功以后,你会在自己的alsa-utils安装路径下的bin目录下见到生成的工具

aconnect 

amidi 

amixer 

aplay 

aplaymidi 

arecord 

arecordmidi 

aseqdump 

aseqnet 

iecset 

speaker-test

3.alsa_lib 

cpALSA/alsa_lib/lib/libasound.*./nfsdir_linux/lib/

alsa的配置文件拷贝

除了库之外alsa的配置文件也需要拷贝到目标板根文件系统中,这里需要注意的是share目录在目标板的存放位置必须和在主机的存放路径一致,比如在主机上存放在/home/david/project/S5PC100/alsa/alsa-lib,

那么我们就得把share放在目标板上的这个路径里

cp-rfshare/home/nfsdir_linux/home/ALSA/alsa_lib/

alsa_utils

将alsa-utils/bin目录下的内容拷贝到目标板根文件系统中的bin下

cpbin/*/home/nfsdir_linux/bin/

4.测试

#cat/proc/asound/devices 

0:

[0] 

:

control

16:

[0-0]:

digitalaudioplayback

24:

digitalaudiocapture

33:

timer

#ls-l/dev/snd/

crw-rw----system 

audio 

116, 

331970-01-0100:

00timer定时器接口

01970-01-0100:

00controlC0控制接口

241970-01-0100:

00pcmC0D0c 

PCM接口

161970-01-0100:

00pcmC0D0p

如果没有snd目录则创建

播放wav文件

1、查看声卡设备Aplay–l

2、打开设备和调节音量

amixer-c0ssetMaster,080%,40%unmutecap

amixer-c0ssetPCM,080%,40%unmutecap

设置第1块声卡的"

Master"

和“PCM”的左声道音量为80%,右声道为40%,取消静音,并设置

3、播放音乐

aplaytest.wav 

PlayingWAVE'

test.wav'

Unsigned8bit,Rate16000Hz,Mono

录音

arecord-d20-c2-twav-r8000-f"

Signed16bitLittleEndian"

a.wav

以20秒的间隔(-d20),立体声(-c2),频率是8000Hz来录制Wave格式音频

alsa-utils工具的使用 

alsa-utils包含的工具有:

alsactl,aconnect,alsamixer,amidi,amixer,aplay,aplaymidi,arecord,arecordmidi,

aseqnet,iecset,speaker-test

amixercontrols 

查看可以控制的选项,可以通过numid控制

amixercontents

查看声卡内容

amixercget 

numid=(amixercontrols显示的)查看具体的选项

amixercset 

controls中所输出的某个参数 

具体的值(比如,0,1,On,Off等)

1.alsactl

alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.

有时在音量控制面板无法调整的选项,可以使用alsactl来实现.

alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定

声卡的驱动程序的设置信息.

alsactl格式:

alsactl[options][store|restore]

选项:

-h,--help

打印帮助信息

-f,--file

指定使用的配置文件,默认为/etc/asound.state.

Selecttheconfigurationfiletouse.Thedefaultis

/etc/asound.state

-F,--force

与恢复命令一起使用.表示最大限度的恢复设置值.

-d,--debug

调试模式,输出更多细节信息.

-v,--version

打印alsactl版本号.

文件:

/etc/asound.state(或使用-f指定的文件)保存有声卡所有混合器的设置信息.

示例:

#rm/etc/asound.state-f

#alsactlstore

2.aconnect

aconnect是ALSA音序器的连接管理器.用来连接或断开ALSA音序器上的端口.端口是

可以随意定义的.

如,使用aconnect可以连接到任何由aseqview建立的设备端口.

命令格式:

aconnect[-d][-options]senderreceiver

aconnect-i|-o[-options]

aconnect-x

连接管理

-d,--disconnect

断开连接.

-e,--exclusive

使用独占模式连接端口.发送和接收端口将不能再与其他端口相连.

-r,--realqueue

将时间包的时间戳,转换为真实时间队列的当前值.

显示端口

-i,--input

显示存在的输入端口.

-o,--output

显示存在的输出端口.

-l,--list

显示当前的连接状态.

删除连接

-x,--removeall

删除所有连接.

连接端口64:

0到65:

0:

%aconnect64:

065:

这个连接是单向的,所有到发送端口64:

0的数据,将被重定向到接收65:

0端口.如果有另一个端口65:

1,

也使用64:

0作为发送端口,则数据会同时发送到2个接收端口.

端口连接时,使用:

%aconnect-d64:

地址也可以使用客户端的名字来代替:

%aconnectExternal:

0Emu8000:

1

使用-i打印出输入端口信息.-o打印出输出端口信息.

%aconnect-i

client0:

’System’[type=kernel]

0’Timer’

1’Announce’

client64:

’ExternalMIDI-0’[type=kernel]

0’MIDI0-0’

可以使用-x选项来清除所有的连接.

%aconnect-x

3.alsamixer

alsamixer是一个终端界面的声卡音量调节器.如图:

alsamixer[options]

-h,-help

显示帮助信息.

-c

指定需要设置的声卡.默认为0.

-D

选择需要控制的调节器.

-g

设置界面颜色.

-s

最小化界面窗口.

快捷键:

进入alsamixer界面后,可以使用下面快捷键进行控制:

常规控制:

左右箭头或n,p用来选择通道.

上下箭头或+,-同时调整选定通道的左右声道的音量.

B,=设置左右声道音量相同.

M静音当前通道.分别对左,右声道静音.

空格选择录音源.在选定的通道上按"

空格"

可以标记此通道为录音源.此操作仅限

输入设备.插入键或"

;

"

删除键或"

'

分别选定左右通道.

L刷新屏幕.

快捷设置

PageUp增大5格音量.

PageDown减小5格音量.

End设置音量为0.

分别调整左,右或整个通道的音量.

Q,W,E增大左,右,通道的音量.

Z,X,C减小左,右,通道的音量.

alt-q,ESC退出.

4.amidi的使用

amidi的作用是对ALSA的RawMIDI端口进行读写.

amidi是一个命令行工具,允许你以独占模式向MIDI设备读/写数据.

amidioptions

-h,-V,-l,-L用于显示信息.

-s,-r,-S,-d用于发送/接收数据.

打印帮助信息.

-V,--version

打印版本号.

-l,--list-devices

打印所有硬件MIDI端口的列表.

-L,--list-rawmidis

打印所有RawMIDI定义.

-p,--port=name

设置要使用的ALSARawMIDI端口.若不指定,则使用声卡0的端口0.

-s,--send=filename

发送指定文件的内容到MIDI端口.文件中必须包含rawMIDI命令(.syx,.mid文件).

-r,--receive=filename

将MIDI端口接收的数据写入指定文件.

-S,--send-hex="

..."

发送十六进制字节到MIDI端口.

-d,--dump

从MIDI端口接收数据,然后以十六进制形式打印出来.

-t,--timeout=秒

指定超时,当端口无数据输出达到超时时长时,将停止接收数据.

amidi-phw:

0-smy_settings.syx

发送my_settings.syx终端MIDI命令到端口hw:

0.

amidi-S’

发送XG复位到默认端口.

amidi-pvirtual-d

建立一个虚拟RawMIDI端口,然后发送所有数据到这个端口.

5.amixer

amixer是命令行的ALSA声卡驱动调节器工具.

amixer用来在命令行控制ALSA的调节器,并且支持多声卡.

amixer不加参数时,将打印默认声卡的设置信息.

amixer[-ccard][cmd]

命令:

help显示语法帮助.

info显示调节器设备的信息.

scontrols显示调节器器的完整列表.

scontents显示包含详细信息的调节器的完整列表.

setorsset...设置调节器信息.

getorsget 

显示调节器的信息.

controls显示声卡控制器的信息.

contents显示完整的声卡控制器信息.

cset...设置声卡控制器信息.

cget显示声卡控制器的信息.

[-ccard]

选择指定的声卡.

[-Ddevice]

选择需要控制的设备名.默认是default.

-hHelp

-q

安静模式.不输出设置结果.

#amixer-c1ssetLine,080%,40%unmutecap

设置第2块声卡的"

line"

的左声道音量为80%,右声道为40%,取消静音,并设置

它为声音源.

#amixer-c2csetnumid=3440%

设置第34个声卡元素为40%.

#amixer-c0setHeadphone30(97%)

将第一个声卡耳机音量设置为30或者97%

#amixer-c0getHeadphone

查看第一个声卡耳机音量设置

6.arecord,aplay

arecord,aplay是命令行的ALSA声卡驱动的录音和播放工具.

arecord是命令行ALSA声卡驱动的录音程序.支持多种文件格式和多个声卡.

aplay是命令行播放工具,支持多种文件格式.

arecord[flags][filename]

aplay[flags][filename[filename]]...

帮助.

--version

打印版本信息.

列出全部声卡和数字音频设备.

-L,--list-pcms

列出全部PCM定义.

-D,--device=NAME

指定PCM设备名称.

-q--quiet

安静模式.

-t,--file-typeTYPE

文件类型(voc,wav,raw或au).

-c,--channels=#

设置通道号.

-f--format=FORMAT

设置格式.格式包括:

S8U8S16_LE;

S16_BEU16_LE

U16_BES24_LE;

S24_BEU24_LE;

U24_BE;

S32_LE;

S32_BE;

U32_LE;

U32_BE

FLOAT_LE;

FLOAT_BE;

FLOAT64_LE;

FLOAT64_BE;

IEC958_SUBFRAME_LE;

IEC958_SUBFRAME_BE;

MU_LAWA_LAW;

IMA_ADPCM;

MPEG;

GSM

-r,--rate=#

设置频率.

-d,--duration=#

设置持续时间,单位为秒.

-s,--sleep-min=#

设置最小休眠时间.

-M,--mmap

mmap流.

-N,--nonblock

设置为非块模式.

-B,--buffer-time=#

缓冲持续时长.单位为微妙.

-v,--verbose

显示PCM结构和设置.

-I,--separate-channels

设置为每个通道一个单独文件.

aplay-c1-traw-r22050-fmu_lawfoobar

播放raw文件foobar.以22050Hz,单声道,8位,mu_law格式.

arecord-d10-fcd-twav-Dcopyfoobar.wav

以CD质量录制foobar.wav文件10秒钟.使用PCM的"

copy"

.

arecord-vv-twav-fS16_LE-c2-d10-r24000./record.wav

-vv显示录音文件的信息

-t录音文件的类型

-f文件格式

-c声道,2为双声道

-r设置波特率

-d录音时间

7.aplaymidi

aplaymidi用来播放标准的MIDI文件.

aplaymidi是一个命令行工具,可以在一个或多个ALSA端口上播放MIDI

文件.

aplaymidi-pclientport[,...][-ddelay]midifile...

输出帮助信息.

输出版本信息.

输出可以使用的输出端口列表.

-p,--port=clientport,...

设置端口.

-d,--delay=seconds

设置MIDI文件结束后,等待时长.

8.arecordmidi的使用

arecordmidi用于录制标准的MIDI文件.

arecordmidi可以从一个或多个ALSA端口上,录制一个标准MIDI文件.

arecordmidi-pclientport[,...][options]midifile

-h,--help

-V,--version

-l,--list

打印可以使用的输入端口.

-p,--port=client

ort,...

-b,--bpm=beats

设置MIDI文件的速率,默认为120BPM.

-f,--fps=frames

设置帧率.

-s,--split-channels

设置每个通道将录制成一个单独的MIDI文件.

-d,--dump

在标准输出上,以文本形式显示接受到的事件信息

9.aseqnet

aseqnet是ALSA调节器的网络连接工具.

aseqnet是ALSA调节器的客户端程序,可以从网络上发送和接收事件数据包.

网络上有主机A,主机B.A为服务器端,B为客户端.ALSA调节器系统必须同事运行

在两个服务器上.然后建立服务器端口:

hostA%aseqnet

sequenceropened:

128:

在HostB上执行:

hostB%aseqnethostA

132:

现在所有发送到HostA:

128:

0的数据将被传送到HostB:

132:

0上,反之亦然.

aseqnet[remotehost]

-pport

指定TCP端口号或服务名.

-saddr

设置指定地址用于读操作.

-daddr

设置指定地址用于写操作.

-v

详细输出模式.

10.iecset的使用

设置或输出IEC958状态位.

iecset是个小工具,通过ALSA的API,设置或输出IEC958(或称S/PDIF)状态位信息.

直接运行iecset将输出当前IEC958的状态信息.命令格式:

iecset[options][cmdarg...]

-Ddevice

设置需要打开的设备名.

-ccard

设置需要打开的网卡名.

-x

输出AESx字节格式的状态信息.

-i

从标准输入读取命令信息,每行一个命令.

professional

专业模式(true)或用户模式(false).

audio

音频模式(true).

rate

采样频率,单位Hz.

emphasis

设置加强值.0=none,1=50/15us,2=CCITT.

lock

速率锁.

sbits

采样位:

2=20bit,4=24bit,6=undefined.

wordlength

设置字长:

0=No,2=22-18bit,4=23-19bit,5=24-20

bit,6=20-16bit.

category

分类:

值从0到0x7f.

copyright

设置是否包含版权.

original

原始标记:

输出当前IEC958信息.

$iecset

Mode:

consumer

Data:

audio

Rate:

44100Hz

Copyright:

permitted

Emphasis:

none

Category:

general

Original:

1stgeneration

Clock:

1000ppm

显示当前第1块声卡的IEC958状态位.

$iecset-Dhw:

non-audio

设置当前为用户模式,并打开"

非音频"

位.

$iecsetprooffaudiooff

non-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1