九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
理解和使用Alsa的配置文件
理解和使用Alsa的配置文件

理解和使用Alsa的配置文件
作者:劉旭暉 Raymond轉(zhuǎn)載請(qǐng)注明出處
Email:colorant@163.com
BLOG:http://blog.csdn.net/colorant/
主頁(yè):http://rgbbones.googlepages.com/

最近在做音頻相關(guān)的驅(qū)動(dòng),使用到了Alsa。過程中涉及到一些硬件的設(shè)置和測(cè)試,需要了解Alsa的配置文件的寫法,稍微學(xué)習(xí)了一下,這里把自己的一些簡(jiǎn)單理解記錄如下。

1 相關(guān)說明
1.1 網(wǎng)站資源
Alsa項(xiàng)目的官方網(wǎng)址:http://www.alsa-project.org/
Alsa LIB API Reference:http://www.alsa-project.org/alsa-doc/alsa-lib/
配置文件的語法:http://www.alsa-project.org/alsa-doc/alsa-lib/conf.html
Asoundrc的官方說明文檔:http://www.alsa-project.org/main/index.php/Asoundrc

實(shí)際上,如果你仔細(xì)看了上述文檔,大概也就沒必要往下看我的文章了 8 )

另:關(guān)于Alsa-Lib的API,網(wǎng)上的是每天自動(dòng)生成的最新版本的API,如果你不能確認(rèn)你使用的版本是否和最新版本完全兼容,可以看Alsa-lib包里自帶的那一份文檔??梢栽趕rc包里執(zhí)行make doc 自己build出來。
1.2 工作環(huán)境
我測(cè)試的軟件版本是基于Alsa 1.0.14的版本,當(dāng)前最新的版本是1.0.16 (2008-7),不過配置文件這一部分應(yīng)該是差不多的,至少?gòu)奈臋n上來看是這樣。

2 理解配置文件
2.1 配置文件的位置
配置文件的位置是由Configure階段的選項(xiàng)來決定的,不過多數(shù)時(shí)候,Alsa的配置文件位于:/usr/share/alsa目錄下,主要配置文件為/usr/share/alsa/alsa.conf 其它文件是否需要,位置在哪,都是由alsa.conf來決定的。
通常會(huì)有/usr/share/alsa/card 和/usr/share/alsa/pcm兩個(gè)子目錄,用于設(shè)置Card相關(guān)的參數(shù),別名以及一些PCM默認(rèn)設(shè)置。
此外,在alsa.conf中,通常還會(huì)引用 /etc/asound.conf 和 ~/.asoundrc這兩個(gè)配置文件,這兩個(gè)文件通常是放置你個(gè)人需要特殊設(shè)置的相關(guān)參數(shù)。按照Alsa官方文檔的說法,1.0.9版本以后,這兩個(gè)文件就不再是必要的,甚至是不應(yīng)該需要的。至少是不推薦使用吧。不過,對(duì)于我來說,在嵌入式系統(tǒng)中使用,為了簡(jiǎn)單和方便測(cè)試,恰恰是需要修改這兩個(gè)文件 8 )
2.2 Alsa.conf
Alsa.conf中主要的一些內(nèi)容包括:用hook讀取了/etc/asound.conf 和 ~/.asoundrc這兩個(gè)配置文件:
@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]

設(shè)置了default pcm的一些默認(rèn)參數(shù),如,默認(rèn)使用Card 0 ,Device 0作為音頻設(shè)備等等。

defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
。。。


設(shè)置了Alsa 內(nèi)置的一些plugin的接口參數(shù),例如file:
pcm.file {
@args [ FILE FORMAT ]
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm null
file $FILE
format $FORMAT
}

File plugin的作用是將PCM數(shù)據(jù)流存儲(chǔ)到文件中。

此外,通常alsa.conf還會(huì)載入cards/aliases.conf ,設(shè)置一些聲卡的別名等,這個(gè)我是不需要了。
在aliases.conf 的結(jié)尾還有以下一段:

<confdir:pcm/default.conf>
<confdir:pcm/dmix.conf>
<confdir:pcm/dsnoop.conf>

用來讀入/usr/share/alsa/pcm目錄下所列的那3個(gè)文件
分別設(shè)置 默認(rèn)PCM設(shè)備的相關(guān)參數(shù),dmix是用來實(shí)現(xiàn)播放時(shí)軟件混音的內(nèi)建plugin,dsnoop則是用來實(shí)現(xiàn)錄音時(shí)多路分發(fā)的內(nèi)建plugin。

3 一些配置和使用實(shí)例

3.1 使用藍(lán)牙設(shè)備
在/etc/asound.conf中添加下列一項(xiàng)用來使用藍(lán)牙的A2DP設(shè)備

# device for bluetooth
pcm.bluetooth{
type bluetooth
device 00:02:5B:00:C1:A0
}

然后調(diào)用 aplay –D bluetooth sample.wav 播放。

需要注意,為了使用該設(shè)備,你需要 /usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so 這一個(gè)藍(lán)牙plugin的庫(kù)文件。這是在Bluez相關(guān)的包里,和Alsa本身沒有關(guān)系。從這里,我們也可以看出alsa的外部plugin和配置文件之間的名字關(guān)系規(guī)則: libasound_module_pcm_####.so 這里的#### 就是你再conf文件中pcm.xxxx 里所寫的名字。

3.2 使用非默認(rèn)的聲卡設(shè)備通道
在我的板子上,Buildin的Audio硬件在Alsa子系統(tǒng)中實(shí)現(xiàn)了兩個(gè)硬件通道,一個(gè)是HIFI通道,另一個(gè)是語音通道,所以我添加了如下配置:

#device for voice channel
pcm.voice{
type plug
slave{
pcm "hw:0,1"
}
}

通過語音通道播放聲音的調(diào)用的方式: aplay –D voice sample.wav

這樣的寫法說明我通過plug這plugin對(duì)音頻數(shù)據(jù)進(jìn)行自動(dòng)的采樣率,通道等調(diào)整后,將數(shù)據(jù)送到我的第0個(gè)card的序號(hào)為1的device上。
實(shí)際上,如果不寫上述配置文件,用 aplay -D "plug:SLAVE='hw:0,1'" sample.wav 也可以得到同樣的結(jié)果。

Hifi通道播放聲音直接使用 Aplay sample.wav即可 也就是Aplay –D default sample.wav

3.3 其它
混音:
aplay -D plug:dmix sample.wav &
你可以通過多次調(diào)用上述命令來測(cè)試多個(gè)音頻數(shù)據(jù)的混音。

Dump音頻數(shù)據(jù):
aplay -D "plug:'file:FILE=/tmp/dump.bin'" sample.wav

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ALSA移植 ARM 交叉編譯 alsa-lib-1.0.9 alsa-utils-1.0.9 環(huán)境變量 播放錯(cuò)誤
ALSA配置文件(alsa.conf,asoundrc,asound.conf)及其自動(dòng)加載AndHDMI&nbsp
Linux Alsa移植
使用alsa-utils調(diào)試ALSA驅(qū)動(dòng)
如何在Android平臺(tái)上使用USB Audio設(shè)備
alsa lib源碼分析
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服