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

打開APP
userphoto
未登錄

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

開通VIP
使用alsa-utils調(diào)試ALSA驅(qū)動
使用alsa-utils調(diào)試ALSA驅(qū)動
分類: linux driver2011-06-24 14:19 2263人閱讀 評論(0) 收藏 舉報
2011-06-24 17:35:58
android下面的alsa utils提供三個工具,分別是:
alsa_amixer : 配置
alsa_aplay : 播放 錄制
alsa_ctl: : store/restore 配置文件,與asound.conf有關(guān)
可以通過alsa_XXX --help 查看詳細(xì)參數(shù)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【alsa_amixer】
/ $ alsa_amixer --help
Usage: amixer <options> [command]
Available options:
-h,--help this help
-c,--card N select the card
-D,--device N select the device, default 'default'
-d,--debug debug mode
-n,--nocheck do not perform range checking
-v,--version print version of this program
-q,--quiet be quiet
-i,--inactive show also inactive controls
-a,--abstract L select abstraction level (none or basic)
-s,--stdin Read and execute commands from stdin sequentially
Available commands: //我們主要使用后面四個
scontrols show all mixer simple controls
scontents show contents of all mixer simple controls (default command)
sset sID P set contents for one mixer simple control
sget sID get contents for one mixer simple control
controls show all controls for given card
contents show contents of all controls for given card
cset cID P set control contents for one control
cget cID get control contents for one control
【使用方法】
alsa_amixer controls :列出alsa驅(qū)動里面注冊的所有控制接口。
這些controls是在驅(qū)動里面通過struct snd_kcontrol_new twl4030_snd_controls[] 定義,函數(shù)static int twl4030_add_controls(struct snd_soc_codec *codec)來添加的接口。
格式如下:
numid=19,iface=MIXER,name='Analog Capture Volume'
alsa_amixer contents : 列出以上接口的詳細(xì)內(nèi)容,格式如下:
numid=19,iface=MIXER,name='Analog Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=5,step=0
: values=5,5
| dBscale-min=0.00dB,step=6.00dB,mute=0
以上,numid是在注冊的時候順序分配的,其他信息查看驅(qū)動里面的數(shù)據(jù)結(jié)構(gòu)來了解。
我們可以通過兩個命令來讀取和設(shè)置相關(guān)參數(shù):
cset cID P set control contents for one control
cget cID get control contents for one control
例如:
alsa_amixer cget numid=19,iface=MIXER,name='Analog Capture Volume'
alsa_amixer cset numid=19,iface=MIXER,name='Analog Capture Volume' 5
其實(shí),如果通過alsa_amixer controls獲取到這些controls的numid后,可以直接使用numid來操作,結(jié)果一樣:
/ $ alsa_amixer cget numid=19
numid=19,iface=MIXER,name='Analog Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=5,step=0
: values=5,5
| dBscale-min=0.00dB,step=6.00dB,mute=0
/ $ alsa_amixer cset numid=19 4
###reg_0x48 ==TWL4030_REG_ANAMIC_GAIN : 0x24
numid=19,iface=MIXER,name='Analog Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=5,step=0
: values=4,4
| dBscale-min=0.00dB,step=6.00dB,mute=0
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【alsa_aplay】
/ $ alsa_aplay --help
Usage: aplay [OPTION]... [FILE]...
-h, --help help
--version print current version
-l, --list-devices list all soundcards and digital audio devices
-L, --list-pcms list device names
-D, --device=NAME select PCM by name
-q, --quiet quiet mode
-t, --file-type TYPE file type (voc, wav, raw or au)
-c, --channels=# channels
-f, --format=FORMAT sample format (case insensitive)
-r, --rate=# sample rate
-d, --duration=# interrupt after # seconds
-M, --mmap mmap stream
-N, --nonblock nonblocking mode
-F, --period-time=# distance between interrupts is # microseconds
-B, --buffer-time=# buffer duration is # microseconds
--period-size=# distance between interrupts is # frames
--buffer-size=# buffer duration is # frames
-A, --avail-min=# min available space for wakeup is # microseconds
-R, --start-delay=# delay for automatic PCM start is # microseconds
(relative to buffer size if <= 0)
-T, --stop-delay=# delay for automatic PCM stop is # microseconds from xrun
-v, --verbose show PCM structure and setup (accumulative)
-V, --vumeter=TYPE enable VU meter (TYPE: mono or stereo)
-I, --separate-channels one file for each channel
--disable-resample disable automatic rate resample
--disable-channels disable automatic channel conversions
--disable-format disable automatic format conversions
--disable-softvol disable software volume control (softvol)
--test-position test ring buffer position
Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_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_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE
S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE
Some of these may not be available on selected hardware
The availabled format shortcuts are:
-f cd (16 bit little endian, 44100, stereo)
-f cdr (16 bit big endian, 44100, stereo)
-f dat (16 bit little endian, 48000, stereo)
錄音參數(shù) S8 U8 S16_LE S16_BE U16_LE U16_B 的詳細(xì)解釋:
S是有符號 U是無符號
BE是大端
LE是小端
這都是PCM的一種表示范圍的方法,所以表示方法中最小值等價,最大值等價,中間的數(shù)據(jù)級別就是對應(yīng)的進(jìn)度了,可以都映射到-1~1范圍。
S8: signed 8 bits,有符號字符 = char, 表示范圍 -128~127
U8: unsigned 8 bits,無符號字符 = unsigned char,表示范圍 0~255
S16_LE: little endian signed 16 bits,小端有符號字 = short,表示范圍 -32768~32767
S16_BE: big endian signed 16 bits,大端有符號字 = short倒序(PPC),表示范圍 -32768~32767
U16_LE: little endian unsigned 16 bits,小端無符號字 = unsigned short,表示范圍 0~65535
U16_BE: big endian unsigned signed 16 bits,大端無符號字 = unsigned short倒序(PPC),表示范圍 0~65535
還有S24_LE,S32_LE等,都可以表示數(shù)字的方法,PCM都可以用這些表示。
上面這些值中,所有最小值-128, 0, -32768, -32768, 0, 0對應(yīng)PCM描敘來說都是一個值,表示最小值,可以量化到浮點(diǎn)-1。所有最大值也是一個值,可以量化到浮點(diǎn)1,其他值可以等比例轉(zhuǎn)換。
example:
alsa_aplay -C -t wav -c 2 -r 44100 -f S16_LE -d 10 -v record.wav
alsa_aplay record.wav
-C: record
-t, --file-type TYPE file type (voc, wav, raw or au)
-c, --channels=# channels
-f, --format=FORMAT sample format (case insensitive)
-r, --rate=# sample rate
-d, --duration=# interrupt after # seconds
-v, --verbose show PCM structure and setup (accumulative)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【alsa_ctl】
/ $ alsa_ctl --help
Usage: alsactl <options> command
Available global options:
-h,--help this help
-d,--debug debug mode
-v,--version print version of this program
Available state options:
-f,--file # configuration file (default /etc/asound.state)
-F,--force try to restore the matching controls as much as possible
(default mode)
-g,--ignore ignore 'No soundcards found' error
-P,--pedantic do not restore mismatching controls (old default)
-I,--no-init-fallback
don't initialize even if restore fails
-r,--runstate # save restore and init state to this file (only errors)
default settings is 'no file set'
-R,--remove remove runstate file at first, otherwise append errors
Available init options:
-E,--env #=# set environment variable for init phase (NAME=VALUE)
-i,--initfile # main configuation file for init phase (default /system/usr/share/alsa/init/00main)
Available commands:
store <card #> save current driver setup for one or each soundcards
to configuration file
restore <card #> load current driver setup for one or each soundcards
from configuration file
init <card #> initialize driver to a default state
names <card #> dump information about all the known present (sub-)devices
into configuration file (DEPRECATED)
主要用到兩個命令:
alsa_ctl store : 將當(dāng)前音頻配置參數(shù)設(shè)置導(dǎo)出到文件 /system/etc/asound.conf
我們可以直接修改此文件進(jìn)行系統(tǒng)初始化配置,當(dāng)然別忘了在init.rc里面添加一個命令:
#####add to init.rc
service asound_conf /system/bin/alsa_ctl restore
oneshot
alsa_ctl restore : 將文件 /system/etc/asound.conf里的配置重新加載
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android中使用ALSA聲卡
ALSA音頻工具amixer,aplay,arecord
Linux amixer用法(音頻)
alsa-lib 交叉編譯以及聲卡驅(qū)動測試
mixer音量的設(shè)置:amixer小工具的…
Linux音頻驅(qū)動構(gòu)架及音頻設(shè)備簡單測試方法 .
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服