afplay 是 macOS 内置命令行音频播放工具,支持 MP3、WAV 等格式,可实现基础播放、音量调节、循环播放、随机批量播放,并能处理含空格路径及验证文件兼容性。

如果您希望在 Mac 终端中快速播放音频文件,而无需启动图形界面应用,则可使用系统自带的 afplay 命令。该命令支持多种常见格式,包括 MP3、WAV、AIFF、M4A 等,无需额外安装软件即可直接调用。以下是具体操作方法:
一、基础播放命令
afplay 是 macOS 内置的命令行音频播放工具,依赖 Core Audio 框架,可直接读取本地音频文件并输出至默认音频设备。它不提供交互式控制界面,但具备简洁、低延迟、轻量级的特点。
1、打开“终端”应用程序(可在“访达 → 应用程序 → 实用工具”中找到)。
2、输入命令:afplay /path/to/audio.mp3,将 /path/to/audio.mp3 替换为实际音频文件的完整路径或拖入文件到终端窗口自动补全路径。
3、按下回车键,音频立即开始播放;播放完成或按 Ctrl + C 可中断当前播放。
二、指定音量与循环播放
afplay 支持通过参数调节播放行为,例如控制音量大小和重复次数,适用于自动化脚本或临时调试场景。
1、以 50% 音量播放 WAV 文件:afplay -v 0.5 /Users/username/Music/sound.wav。
2、循环播放 MP3 文件三次:afplay -t 300 /path/to/file.mp3(-t 参数表示总播放时长,单位为秒;afplay 本身不支持原生循环参数,需配合 shell 循环实现多次播放)。
3、实现无限循环(在终端中持续重播同一文件):while true; do afplay /path/to/file.mp3; done。
三、批量随机播放当前目录音频文件
利用 shell 命令组合,可对当前目录下的多个音频文件进行随机顺序播放。该方法规避了 afplay 单次仅支持一个文件的限制,通过循环调用实现序列化播放。
1、进入目标音频目录:cd /path/to/audio/folder。
2、执行随机播放命令:find . \( -name "*.mp3" -o -name "*.wav" -o -name "*.aiff" \) -print0 | sort -R -z | xargs -0 -I {} afplay "{}"。
3、如需中途停止,按 Ctrl + C 中断整个管道流程。
四、处理含空格或特殊字符的文件名
当音频文件路径中包含空格、括号、中文等字符时,直接使用未加引号的路径会导致 afplay 报错“file not found”。必须确保路径被正确转义或包裹,否则命令无法识别完整文件名。
1、在终端中输入 afplay " 后,直接将 Finder 中的音频文件拖入终端窗口,系统自动添加双引号并转义特殊字符。
2、手动编写路径时,务必用英文双引号包裹完整路径:afplay "/Users/username/Music/我的录音.wav"。
3、若使用 find 或 ls 生成路径列表,必须搭配 -print0 与 xargs -0 组合,避免因空格截断路径。
五、验证音频文件是否被 afplay 支持
并非所有编码的 MP3 或 WAV 文件都能被 afplay 正确解码。afplay 依赖系统音频解码器,若文件使用非标准封装或损坏,会静默失败或报错“Unable to open file”。此时需确认文件完整性及编码兼容性。
1、检查文件基本信息:afinfo /path/to/audio.mp3,该命令可显示采样率、位深、通道数、编码类型等关键参数。
2、若输出中出现 Error: Couldn't open file,说明文件格式不受支持或已损坏。
3、对疑似问题文件,可用 ffmpeg -i /path/to/audio.mp3 -c copy -f null - 快速检测是否可被 FFmpeg 解封装,辅助判断原始文件有效性。










