arecord -c 2 -r
44100 -f S16_LE -D plughw:4,0 record.pcm root@atlas7-arm:/media/disk# root@atlas7-arm:/media/disk# aplay -D plughw:0,1 greetlogo.wav Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo root@atlas7-arm:/media/disk# aplay -D hw:0,1 greetlogo.wav Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz) please, try the plug plugin aplay: pcm_write:1947: write error: Bad address root@atlas7-arm:/media/disk# aplay -D plughw:0,1 greetlogo.wav Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo aplay -Dplug:dmix 手机互联: echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_apple_rs_req roleswitch /dev/bus/usb/001/002 1 ./roleswitch /dev/bus/usb/001/003 1 Request role switch (Support CarPlay) successful /////////////////////////////////////////////////////////////////////////// 车速 单片机工作时对gpio0管脚有配置:devmem 0x10E40100 0x44220300 读出结果为 转速设置成功方法: 1.短接主板上U8 4与6脚后上电 2. devmem 0x10E40100 //0x44230303 查看管脚配置成功 cat /sys/bus/platform/devices/10d90000.pulsec/l_num //与主电源一起的当蓝色线短路时有脉冲计数 seep_ ill_det ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// gst-launch-1.0 v4l2src device=/dev/video0 norm=45056 ! video/x-raw, format=RGB,width=800,height=480 ! queue ! v4l2sink device=/dev/video2 gst-launch-1.0 v4l2src device=/dev/video0 norm=45056 ! video/x-raw, width=720,height=480 ! v4l2sink device=/dev/video1 gst-inspect-1.0 v4l2src gst-inspect-1.0 v4l2sink gst-launch-1.0 v4l2src device=/dev/video0 norm=45056 \ ! video/x-raw, width=720,height=480 ! v4l2sink device=/dev/video2 gst-inspect-1.0 v4l2src gst-inspect-1.0 v4l2sink cvbs 切换 devmem 0x10db281c 8 66 // cvbs1 devmem 0x10db281c 8 2 // cvbs0 sudo cp -af * /media/a/root/ ///////////////////////////////////////////////////////////////////////////////// 测试LINE0 amixer sset 'Input path' LINE0 arecord -f S16_LE -r 8000 -t wav | aplay aux 探测事件 #define KEY_AUX 0x186 hexdump -C /dev/input/event0 00000200 de 39 e2 57 29 a1 08 00 01 00 86 01 01 00 00 00 |.9.W)...........| 按下 00000210 de 39 e2 57 29 a1 08 00 00 00 00 00 00 00 00 00 |.9.W)...........| 00000220 df 39 e2 57 08 05 08 00 01 00 86 01 00 00 00 00 |.9.W............| 抬起 00000230 df 39 e2 57 08 05 08 00 00 00 00 00 00 00 00 00 |.9.W............| ///////////////////////////////////////////////////////////////////////////////////////// 麦克风测试 amixer sset 'Input path' MIC0 arecord -f S16_LE -r 8000 -t wav | aplay arecord -c 1 -t wav -r 16000 -f S16_LE -Dhw:0,10 /tmp/record_16kHz-carplayvoicecall.wav arecord -c 1 -t wav -r 8000 -f S16_LE -Dhw:0,10 mic调整 devmem 0x10E40354 devmem 0x10E40350 32 0x3 //clr devmem 0x10E4025C 32 //set devmem 0x10E40258 32 0x3 // Direct Stream Mixing PCM Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 23760 period_size : 720 每次传输的数据长度。值越小,时延越小,cpu占用就越高。 period_time : 15000 tstamp_mode : NONE period_step : 1 avail_min : 720 缓冲区空闲区大于该值时,pcm_mmap_write()才往缓冲写数据。这个 值越大,往缓冲区写入数据的次数就越少,面临XRUN的机会就越大。Android samsung tuna 设备在screen_off时增大该值以减小功耗,在screen_on时减小该 值以减小XRUN的机会。 period_event : 0 start_threshold : 23760 缓冲区的数据超过该值时,硬件开始启动数据传输。如果太大, 从开始播放到声音出来时延太长,甚至可导致太短促的声音根本播不出来;如果太小, 又可能容易导致XRUN. stop_threshold : 23760 缓冲区空闲区大于该值时,硬件停止传输。默认情况下,这个数 为整个缓冲区的大小,即整个缓冲区空了,就停止传输。但偶尔的原因导致缓冲区空, 如CPU忙,增大该值,继续播放缓冲区的历史数据,而不关闭再启动硬件传输(一般此 时有明显的声音卡顿),可以达到更好的体验。 silence_threshold: 0 silence_threshold. 这个值本来是配合stop_threshold使用,往缓冲区填充静音 数据,这样就不会重播历史数据了。但如果没有设定silence_size,这个值会生效吗? 求解?? silence_size : 0 boundary : 1557135360
Hardware PCM card 0 'kas-audio-card' device 0 subdevice 0 Its setup is: stream : PLAYBACK access : MMAP_INTERLEAVED format : S16 : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 28800 period_size : 720 period_time : 15000 tstamp_mode : ENABLE period_step : 1 avail_min : 720 period_event : 0 start_threshold : 1 stop_threshold : 1887436800 silence_threshold: 0 silence_size : 1887436800 boundary : 1887436800 appl_ptr : 0 hw_ptr : 0
ALSA使用了环形buffer来存储回放和录音的数据,这里使用了2个指针来维护设备和应用间的通信,一个指针指向硬件当前处理的数据,另一个指针指向应用程序最后处理的数据,现代的的音频芯片允许编程改变传输的时间周期,这意味着音频流的数据被分割成很多小块,当一个小块传输完成时,设备对应用程序进行响应。
主要有三大技术标准组织制定压缩标准: |
|