Linux下ALSA声卡编程

Linux下ALSA声卡编程

ID:42625578

大小:21.39 KB

页数:9页

时间:2019-09-19

Linux下ALSA声卡编程_第1页
Linux下ALSA声卡编程_第2页
Linux下ALSA声卡编程_第3页
Linux下ALSA声卡编程_第4页
Linux下ALSA声卡编程_第5页
资源描述:

《Linux下ALSA声卡编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux下ALSA声卡编程一.介绍ALSA标准是一个先进的linux声音体系。它包含内核驱动集合,API库和工具对Linux声音进行支持。ALSA包含一系列内核驱动对不同的声卡进行支持,还提供了libasound的API库。用这些进行写程序不需要打开设备等操作,所以编程人员在写程序的时候不会被底层的东西困扰。与此相反OSS/Free驱动在内核层次调用,需要指定设备名和调用ioctl。为提供向后兼容,ALSA提供内核模块模仿OSS/Free驱动,所以大多数的程序不需要改动。ALSA拥有调用插件的能力对新设备提供扩展,包括那些用软件模拟出来的虚拟设

2、备。ALSA还提供一组命令行工具包括mixer,soundfileplayer和工具控制一些特别的声卡的特别的作用。二.ALSA体系:ALSAAPI被主要分为以下几种接口:l控制接口:提供灵活的方式管理注册的声卡和对存在的声卡进行查询。lPCM接口:提供管理数字音频的捕捉和回放。l原始MIDI接口:支持MIDI(MusicalInstrumentDigitalInterface),一种标准电子音乐指令集。这些API提供访问声卡上的MIDI总线。这些原始借口直接工作在TheMIDI事件上,程序员只需要管理协议和时间。l记时接口:为支持声音的同步事件

3、提供访问声卡上的定时器。l音序器接口:一个比原始MIDI接口高级的MIDI编程和声音同步高层接口。它可以处理很多的MIDI协议和定时器。l混音器接口:控制发送信号和控制声音大小的声卡上的设备。三.声卡的缓存和数据的传输:一块声卡有一个声卡内存用来存储记录的样本。当它被写满时就产生中断。内核驱动就使用DMA将数据传输到内存中。同样地,当在播放时就将内存中的声音样本使用DMA传到声卡的内存中!声卡的缓存是环状的,这里只讨论应用程序中的内存结构:ALSA将数据分成连续的片段然后传到按单元片段传输。四:典型的声音程序结构:openinterfacefor

4、captureorplaybacksethardwareparameters(accessmode,dataformat,channels,rate,etc.)whilethereisdatatobeprocessed:readPCMdata(capture)orwritePCMdata(playback)closeinterface五.一些例子:1.显示一些PCM的类型和格式:#include#includeintmain(){std::cout<<"ALSAlibraryversion:

5、"<

6、_LAST;++val)std::cout<

7、ion((snd_pcm_subformat_t)val)<<")"<

8、0;val<=SND_PCM_FORMAT_LAST;++val)std::cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。