Linux aplay 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 Linux 中使用 aplay 命令,它是 ALSA(Advanced Linux Sound Architecture,高级 Linux 声音架构)工具集的一部分。aplay 命令提供了 ALSA 声音系统的用户级接口,允许你从命令行播放音频文件。你将首先安装使用 aplay 所需的软件包,然后探索其各种选项和标志,以不同的方式播放音频文件。

本实验涵盖以下步骤:安装 aplay 所需的软件包、使用 aplay 命令播放音频文件,以及探索 aplay 命令的可用选项和标志。本实验旨在通过实际示例帮助你深入理解 aplay 命令,它是在 Linux 环境中管理音频播放的有用工具。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/PackagesandSoftwaresGroup(["`Packages and Softwares`"]) linux/PackagesandSoftwaresGroup -.-> linux/wget("`Non-interactive Downloading`") linux/PackagesandSoftwaresGroup -.-> linux/apt("`Package Handling`") subgraph Lab Skills linux/wget -.-> lab-422545{{"`Linux aplay 命令实用示例`"}} linux/apt -.-> lab-422545{{"`Linux aplay 命令实用示例`"}} end

安装 aplay 所需的软件包

在这一步中,我们将安装使用 Linux 中 aplay 命令所需的软件包。aplay 命令是 ALSA(Advanced Linux Sound Architecture,高级 Linux 声音架构)工具集的一部分,它提供了 ALSA 声音系统的用户级接口。

首先,更新软件包索引:

sudo apt-get update

示例输出:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Fetched 324 kB in 1s (324 kB/s)
Reading package lists... Done

接下来,安装 alsa-utils 软件包,它包含了 aplay 命令以及其他 ALSA 工具:

sudo apt update
sudo apt-get install -y alsa-utils

示例输出:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
Suggested packages:
  alsa-oss
The following NEW packages will be installed:
  alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf alsa-utils libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,265 kB of archives.
After this operation, 5,120 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-firmware-loaders amd64 1.2.4-1 [12.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-topology-conf all 1.2.4-1 [11.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-ucm-conf all 1.2.4-1 [89.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-utils amd64 1.2.6-1ubuntu1 [1,153 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 libatopology2 amd64 1.2.4-1 [13.9 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsnd-dev amd64 1.0.29-1 [18.0 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1 amd64 1.0.31-2 [111 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1-dev amd64 1.0.31-2 [57.1 kB]
Fetched 1,265 kB in 1s (1,265 kB/s)
Selecting previously unselected package alsa-firmware-loaders.
(Reading database ... 123412 files and directories currently installed.)
Preparing to unpack .../alsa-firmware-loaders_1.2.4-1_amd64.deb ...
Unpacking alsa-firmware-loaders (1.2.4-1) ...
Selecting previously unselected package alsa-topology-conf.
Preparing to unpack .../alsa-topology-conf_1.2.4-1_all.deb ...
Unpacking alsa-topology-conf (1.2.4-1) ...
Selecting previously unselected package alsa-ucm-conf.
Preparing to unpack .../alsa-ucm-conf_1.2.4-1_all.deb ...
Unpacking alsa-ucm-conf (1.2.4-1) ...
Selecting previously unselected package alsa-utils.
Preparing to unpack .../alsa-utils_1.2.6-1ubuntu1_amd64.deb ...
Unpacking alsa-utils (1.2.6-1ubuntu1) ...
Selecting previously unselected package libatopology2:amd64.
Preparing to unpack .../libatopology2_1.2.4-1_amd64.deb ...
Unpacking libatopology2:amd64 (1.2.4-1) ...
Selecting previously unselected package libsnd-dev:amd64.
Preparing to unpack .../libsnd-dev_1.0.29-1_amd64.deb ...
Unpacking libsnd-dev:amd64 (1.0.29-1) ...
Selecting previously unselected package libsndfile1:amd64.
Preparing to unpack .../libsndfile1_1.0.31-2_amd64.deb ...
Unpacking libsndfile1:amd64 (1.0.31-2) ...
Selecting previously unselected package libsndfile1-dev:amd64.
Preparing to unpack .../libsndfile1-dev_1.0.31-2_amd64.deb ...
Unpacking libsndfile1-dev:amd64 (1.0.31-2) ...
Setting up alsa-firmware-loaders (1.2.4-1) ...
Setting up alsa-topology-conf (1.2.4-1) ...
Setting up alsa-ucm-conf (1.2.4-1) ...
Setting up libatopology2:amd64 (1.2.4-1) ...
Setting up libsnd-dev:amd64 (1.0.29-1) ...
Setting up libsndfile1:amd64 (1.0.31-2) ...
Setting up libsndfile1-dev:amd64 (1.0.31-2) ...
Setting up alsa-utils (1.2.6-1ubuntu1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...

现在,aplay 命令所需的软件包已安装完毕,我们可以继续下一步。

使用 aplay 命令播放音频文件

在这一步中,我们将学习如何在 Linux 中使用 aplay 命令播放音频文件。

首先,下载一个示例音频文件用于我们的示例:

wget https://www.soundjay.com/button/sounds/beep-07.wav -O ~/project/beep.wav

示例输出:

--2023-04-12 08:31:33--  https://www.soundjay.com/button/sounds/beep-07.wav
Resolving www.soundjay.com (www.soundjay.com)... 104.24.108.5, 104.24.109.5
Connecting to www.soundjay.com (www.soundjay.com)|104.24.108.5|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11174 (11K) [audio/x-wav]
Saving to: '~/project/beep.wav'

~/project/beep.wav     100%[===================>]  10.92K  --.-KB/s    in 0s

2023-04-12 08:31:33 (128 MB/s) - '~/project/beep.wav' saved [11174/11174]

现在,使用 aplay 命令播放音频文件:

aplay ~/project/beep.wav

示例输出:

Playing WAVE '/home/labex/project/beep.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

你应该能通过系统的扬声器或耳机听到音频文件的播放。

要停止播放,按下 Ctrl+C

aplay 命令支持多种选项来控制音频播放,例如设置音量、循环播放等。我们将在下一步中探索这些选项。

探索 aplay 命令的选项和标志

在这最后一步中,我们将探索 aplay 命令的一些可用选项和标志。

首先,显示 aplay 命令的帮助菜单:

aplay --help

示例输出:

Usage: aplay [OPTION]... [FILE]...
Plays a PCM sound file.

Options:
  -h, --help             help
  -D, --device=NAME      set the device name
  -c, --channels=NUM     set the number of channels
  -f, --format=FORMAT    set the sample format
  -r, --rate=RATE        set the sample rate
  -t, --type=TYPE        set the file type
  -v, --version          show version
  -V, --verbose          show PCM hardware parameters
  -q, --quiet            quiet mode
  -l, --list-devices     list all soundcards and digital audio devices
  -L, --list-pcm         list all PCM devices
  -Xalsa-opts            pass options for ALSA backend

你可以尝试的一些有用选项:

  • 循环播放音频文件:

    aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav -l 3

    这将以立体声(2 声道)、44.1 kHz 的采样率、16 位小端格式播放 beep.wav 文件,并循环播放 3 次。

  • 调整音量:

    aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav --volume 50

    这将以 50% 的音量播放 beep.wav 文件。

  • 列出可用的音频设备:

    aplay -l

    这将显示系统中所有可用的音频设备列表。

你可以随意尝试不同的选项和标志,根据需求自定义音频播放。

总结

在本实验中,我们学习了如何在 Linux 中安装使用 aplay 命令所需的软件包,它是 ALSA(Advanced Linux Sound Architecture,高级 Linux 声音架构)工具集的一部分。我们更新了软件包索引并安装了 alsa-utils 软件包,其中包含了 aplay 命令以及其他 ALSA 工具。随后,我们探索了 aplay 命令的选项和标志,这些选项和标志允许我们播放音频文件并自定义播放设置。

本实验涵盖了 aplay 命令的实际用法,包括播放音频文件以及理解可用的选项和标志。这些知识可以应用于 Linux 环境中的各种音频相关任务。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程