跳到主要内容

aplay 命令

介绍

aplay 是 Linux 系统中用于播放音频文件的命令行工具。它是 ALSA(Advanced Linux Sound Architecture)项目的一部分,用于与音频设备进行交互。

aplay 支持大多数音频文件格式,如 WAV、MP3、OGG 等。理论上,只要有相应的 ALSA 插件支持就可以播放。

语法

aplay [options] [filename [filename]] ...

选项

  • -l, --list-devices:列出所有声卡和数字音频设备。
  • -L, --list-pcms:列出所有 PCM 设备名称。
  • -D, --device=NAME:按名称选择 PCM 设备。
  • -q, --quiet:安静模式。
  • -t, --file-type TYPE:指定文件类型(如 voc、wav、raw 或 au)。
  • -c, --channels=#:指定音频文件的通道数。
  • -f, --format=FORMAT:指定音频文件的采样格式(不区分大小写)。
  • -r, --rate=#:指定音频文件的采样率。
  • -d, --duration=## 秒后中断。
  • -s, --samples=#:每个通道采样 # 次后中断。
  • -v, --verbose:显示 PCM 结构和设置(累计)。
  • -i, --interactive:允许来自 stdin 的交互操作。
  • -h, --help:显示帮助信息。
  • --version: 显示版本信息。
备注

支持的采样格式有: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

需要注意的是,并非所有硬件都完全支持这些格式。

此外,一些常用的格式有快捷方式:

  • -f cd(16 bit little endian, 44100, stereo)等效于 -f S16_LE -c2 -r44100
  • -f cdr(16 bit big endian, 44100, stereo)等效于 -f S16_BE -c2 -f44100
  • -f dat(16 bit little endian, 48000, stereo)等效于 -f S16_LE -c2 -r48000

如果没有指定采样格式,默认使用 U8

示例

播放名为 sample.wav 的音频文件:

aplay sample.wav

指定使用硬件设备 hw:0,0 进行播放:

aplay -D hw:0,0 sample.wav

指定音频文件的格式为 CD 质量(16位,立体声),通道数为 2,采样率为 44100 Hz:

aplay -f cd -c 2 -r 44100 sample.wav

使用原始文件类型进行播放,并指定采样率、通道数和数据格式:

aplay -t raw -r 44100 -c 2 -f S16_LE sample.raw

从标准输入读取数据进行播放:

cat sample.wav | aplay -