查看音频声卡
查看当前Soc的声卡状态
从这里可以看出:
card0=rockchiprk3308v
card1=rockchiprk3308p
card7=Loopback
# cat /proc/asound/cards
0 [rockchiprk3308v]: rockchip_rk3308 - rockchip,rk3308-vad
rockchip,rk3308-vad
1 [rockchiprk3308p]: rockchip_rk3308 - rockchip,rk3308-pcm
rockchip,rk3308-pcm
7 [Loopback ]: Loopback - Loopback
Loopback 1
# ls /proc/asound/
Loopback card7 pcm timers
card0 cards rockchiprk3308p version
card1 devices rockchiprk3308v
查看当前声卡工作状态
声卡分两种通道,一种是Capture
、一种是Playback
。Capture
是输入通道,Playback
是输出通道。例如pcm0p
属于声卡输出通道,pcm0c
属于声卡输入通道。如查看声卡0目录:
# ls /proc/asound/card0/
id pcm0c pcm0p
查看输入和输出通道状态
state
:当前输出运行状态owner_pid
:调用者的线程号delay
:当前buffer中可用数据大小(单位为:帧)avail
:当前buffer中空闲空间大小(单位为:帧)[为pcm*c录音时,该值为可用数据大小]hw_ptr
:alsa驱动读取指针位置 [为pcm*c录音时,该值为 alsa驱动写入指针位置]appl_ptr
:alsa写入数据者的指针位置 [为pcm*c录音时,该值为alsa读取数据者的指针位置]
查看 card0
的所有输入和输出通道状态
cat /proc/asound/card0/pcm*c/sub0/status
cat /proc/asound/card0/pcm*p/sub0/status
# cat /proc/asound/card0/pcm*c/sub0/status
closed
# cat /proc/asound/card0/pcm*p/sub0/status
state: RUNNING
owner_pid : 563
trigger_time: 13.031943547
tstamp : 948.287271452
delay : -44892240
avail : 44896336
avail_max : 44896336
-----
hw_ptr : 44892240
appl_ptr : 0
查看 card1
的所有输入和输出通道状态
# cat /proc/asound/card1/pcm*c/sub0/status
closed
# cat /proc/asound/card1/pcm*p/sub0/status
closed
查看 card7
的所有输入和输出通道状态
# cat /proc/asound/card7/pcm*c/sub0/status
closed
state: RUNNING
owner_pid : 563
trigger_time: 13.048954714
tstamp : 0.000000000
delay : 48
avail : 48
avail_max : 1056
-----
hw_ptr : 77933904
appl_ptr : 77933856
#
# cat /proc/asound/card7/pcm*p/sub0/status
closed
closed
查看当前通道的软件参数
format
:当前数据位宽channels
:当前声道数rate
:当前采样率period
:单次处理数据的大小(单位为:帧)buffer_size
:alsa 的buffer大小(单位为:帧)
查看 card0
软件通道参数:
# cat /proc/asound/card0/pcm0c/sub0/hw_params
closed
#
# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 4096
通过buffer_size
可计算出buffer
的时间长度:4096/48000*1000=85.3ms
查看 card1
软件通道参数:
# cat /proc/asound/card1/pcm0c/sub0/hw_params
closed
# cat /proc/asound/card1/pcm0p/sub0/hw_params
closed
查看当前通道的硬件参数
查看 card0
的硬件通道参数:
start_threshold
:当起播时buffer中的可用数据大小大于等于start_threshold时alsa才启动播放stop_threshold
:当播放过程中buffer空闲大小大于等于stop_threshold时alsa停止播放boundary
:虚拟的buffer大小(一个回卷的大小)
# cat /proc/asound/card0/pcm0p/sub0/sw_params
tstamp_mode: ENABLE
period_step: 1
avail_min: 1024
start_threshold: 1
stop_threshold: 4611686018427387904
silence_threshold: 0
silence_size: 4611686018427387904
boundary: 4611686018427387904
# cat /proc/asound/card0/pcm0c/sub0/sw_params
closed