【问题标题】:Multiple files created by arecordarecord 创建的多个文件
【发布时间】:2017-03-02 03:06:25
【问题描述】:

我使用 buildroot 进行了自定义分发,并为 ARMv7 处理器提供了硬流程。 一切正常,除了....

# arecord -D hw:0,0 -fdat -d 5 test.wav

这会生成多个文件。成千上万的人。

-rw-r--r--    1 root     root        958508 Jan  1 00:19 test-01.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-02.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-03.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-04.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-05.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-06.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-07.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-08.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-09.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-10.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-100.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-101.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-102.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-103.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-104.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-105.wav
-rw-r--r--    1 root     root            44 Jan  1 00:19 test-106.wav

等等……

如果我传递 -d 参数,就会发生这种情况。有什么想法吗?

【问题讨论】:

  • 您是否使用 amixeralsamixer 检查了音频设置?您需要启用记录源。我猜你的意思是hard-float?但这应该没关系。你也可以试试-N,以防驱动程序有问题。
  • 理论上第一个文件应该有960044字节。这看起来好像没有正确处理 64 位算术。

标签: audio embedded-linux alsa buildroot


【解决方案1】:

问题似乎出现在从 1.0.28 arecord 版本 (arecord --version) 开始的 ARM 架构上。 在运行 Raspbian Jessie 的 Raspberry Pi 3 上,我设法将 alsa-utils1.0.28-1 降级到 1.0.25-4(回滚到 Wheezy 的仓库),从而解决了问题:

  • sudo nano /etc/apt/sources.list
  • 将以下行添加到文件末尾deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
  • sudo apt-get update
  • sudo aptitude versions alsa-utils(这应该显示旧版本可用)
  • sudo apt-get install alsa-utils=1.0.25-4
  • 现在arecord --version 应该显示降级版本1.0.25
  • 您现在可能想要删除添加到 /etc/apt/sources.list 的那行,这样您就不会从 wheezy 获得其他软件包
  • sudo nano /etc/apt/sources.list
  • 删除deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi这一行
  • 再次运行 apt-get update
  • 另外,请暂停 alsa-utils,以免升级
  • sudo apt-mark hold alsa-utils

【讨论】:

    【解决方案2】:

    另一种解决方案是将 alsa-utils 从源代码升级到最新版本 1.1.3。这就是我在 Raspberry Pi 3 上的做法

    1. mkdir ~/alsa-utils
    2. cd ~/alsa-utils/
    3. wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.1.3.tar.bz2
    4. tar xvjf alsa-utils-1.1.3.tar.bz2
    5. cd ~/alsa-utils/alsa-utils-1.1.3/
    6. sudo apt-get install libncursesw5-dev
    7. ./configure --disable-alsaconf --disable-bat --disable-xmlto --with-curses=ncursesw
    8. make
    9. sudo make install
    10. arecord --version

    【讨论】:

    • 截至 2018 年 1 月的最新版本是 1.1.5,只需在命令中相应地更新版本号即可。
    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多