![]()
背景音乐
macOS 音频实用工具
概述
自动暂停音乐
应用程序音量
录制系统音频
下载
运行 / 配置
构建和安装
卸载
故障排除
相关项目
许可证
概述
- 当其他音频源播放/停止时,自动暂停/恢复您的音乐播放器
- 按应用程序控制音量
- 录制系统音频
- 安装无需重启
注意:Background Music 仍处于 alpha 阶段。
自动暂停音乐
Background Music 会在第二个音频源播放时自动暂停您的音乐播放器,并在第二个源停止时恢复播放器。
自动暂停功能目前支持以下音乐播放器:
为新音乐播放器添加支持通常很简单。1 如果您不知道如何编程,或者只是不想 做,请随时 创建一个 issue。否则,请参见 BGMMusicPlayer.h。
应用程序音量
Background Music 为系统中运行的每个应用程序提供一个音量滑块。您可以将音量较低的应用程序提升至其最大音量以上。
录制系统音频
您可以使用 Background Music 录制系统音频。在 Background Music 运行期间,启动 QuickTime Player 并选择 File > New Audio Recording(或 New Screen Recording、New Movie Recording)。然后点击录制按钮旁边的下拉菜单(⌄),并选择 Background Music 作为输入设备。
您可以通过创建一个 aggregate device 来同时录制系统音频和麦克风,该设备将您的输入设备(通常是 Built-in Input)与 Background Music 设备组合在一起。您可以使用 /Applications/Utilities 下的 Audio MIDI Setup 实用工具来创建该聚合设备。
下载
需要 macOS 10.13+。
您可以使用以下选项下载 Background Music 的当前版本。我们还有 snapshot builds。
选项 1
下载 version 0.5.0:
BackgroundMusic-0.5.0.pkg (788 KB)
MD5: 2405d83ac3e2a29fb2c9bf5beb6eaceb
SHA256: c7742b48ac2e9ea955fea66e5c13bb56be5f1487e0b12bad93820984bccb69ef
PGP: sig, key (0595DF814E41A6F69334C5E2CAA8D9B8E39EC18C)
选项 2
通过在 Terminal 中运行以下命令,使用 Homebrew 进行安装:
brew install --cask background-music
运行 / 配置
直接运行 Applications > Background Music.app!Background Music 启动时会将自身设置为 System Settings > Sound 下的默认输出设备(退出时恢复原设置)。
开机启动(可选)
将 Background Music 添加到 System Settings > General > Login Items。
从源代码安装
Background Music 通常在一分钟内即可完成构建。您需要 Xcode 版本 10 或更高版本。
选项 1
- 打开 Terminal。
- 将以下命令复制并粘贴到 Terminal 中:
(set -eo pipefail; URL='https://github.com/kyleneideck/BackgroundMusic/archive/master.tar.gz'; \
cd $(mktemp -d); echo Downloading $URL to $(pwd); curl -qfL# $URL | gzcat - | tar x && \
/bin/bash BackgroundMusic-master/build_and_install.sh -w && rm -rf BackgroundMusic-master)
更多信息...
此命令使用 /bin/bash 而非 bash,以防有人在他们的 $PATH 中使用了非标准的 Bash。然而,对于 tar 或 curl 它并未这样做。此外,build_and_install.sh 不会通过绝对路径调用程序。此命令还使用 gzcat - | tar x 而非 tar xz,因为 gzcat 还会检查文件的完整性(gzip 文件
包含校验和),并确保不会运行 build_and_install.sh 的半下载副本。
选项 2
该脚本在安装结束时重启系统音频进程 (coreaudiod),因此如果可以,请暂停任何正在播放音频的应用程序。
如需手动构建和安装,请参阅 MANUAL_INSTALL.md。
卸载
要从系统中卸载 Background Music,请按照以下步骤操作:
- 打开 Terminal。
- 要定位
uninstall.sh,请运行:cd /Applications/Background\ Music.app/Contents/Resources/。 - 运行:
bash uninstall.sh。
如果无法定位 uninstall.sh,您可以再次 下载该项目。
如需手动卸载,请参阅 MANUAL_UNINSTALL.md。
故障排除
如果 Background Music 崩溃且您的音频停止工作,请打开 System Settings > Sound 并将
系统的默认输出设备更改为 Background Music device 以外的设备。如果已经是该设备,则
更改默认设备,然后再改回来。
确保在首次运行 Background Music 时允许“麦克风访问”。如果您拒绝了,请前往
System Settings > Security & Privacy > Privacy > Microphone,在列表中找到 Background Music
并勾选其旁边的复选框。Background Music 实际上并不监听您的麦克风。它需要
该权限,因为它从虚拟输入设备获取系统音频,而 macOS 将其
视为麦克风。(我们正在 #177 中处理此问题。)
如果某个应用的声音滑块无法正常工作,请尝试在 More Apps 中查找类似 Some App (Helper) 的条目。对于某些会议或视频聊天应用,您可能需要执行此操作以更改当前
会议的音量。
已知问题及解决方案
-
将应用音量设置为 50% 以上可能会导致 削波。
- 将音量设置为最大级别,并降低其他应用的音量。
-
目前仅支持 2 声道(立体声)音频设备作为输出。
-
VLC 在播放时会暂停 iTunes 或 Spotify,并且阻止 Background Music 在之后恢复您的音乐播放。
- 在 VLC 的首选项中,选择 显示全部。导航至 界面 > 主界面 > macosx,并将 控制外部音乐播放器 更改为 不执行任何操作 或 暂停并恢复 iTunes/Spotify。
-
Skype 在通话期间会暂停 iTunes。
- 要禁用此功能,请在 Skype 首选项的 常规 选项卡中取消勾选 通话期间暂停 iTunes。
-
在 Background Music 未运行时插入或拔出耳机会导致系统音频静音。
- 前往 系统设置 > 声音。点击 输出 选项卡,并将默认输出设备更改为 Background Music 设备以外的其他设备。或者,在菜单栏中按住 Option + 点击 声音图标以选择不同的输出设备。当 macOS 记住上次使用(或未使用)耳机时 Background Music 设备是您的默认音频设备时,就会发生这种情况。
-
一个 Chrome 的 bug 导致在打开 Background Music 后 Chrome 无法切换到 Background Music 设备。
- Chrome 的音频仍然会播放,但 Background Music 不会感知到它。
-
某些应用程序播放的通知声音刚好足够长,足以触发自动暂停。
- 增加 BGMAutoPauseMusic.mm 中的
kPauseDelayNSec常量。这将增加您的音乐与其他音频的重叠时间,因此不要增加得太多。详见 #5。
- 增加 BGMAutoPauseMusic.mm 中的
许多其他问题列在 TODO.md 和 GitHub Issues 中。
相关项目
- Core Audio 用户空间驱动程序 示例 BGMDriver 所基于的 Apple 示例代码。
- Soundflower - “允许应用程序将音频传递给其他应用程序的 MacOS 系统扩展。”
- WavTap - “全局捕获你的 Mac 正在播放的任何内容——就像截图一样简单”
- eqMac, GitHub - “Mac 的系统级音频均衡器”
- llaudio - “一项用于逆向工程 Mac OSX 用户/内核音频接口的旧作品。展示了如何像在 Darwin 上那样直接从内核读取音频(在 OSX 中,大部分 这些功能缺失)”
- mute.fm, GitHub (Windows) - 自动暂停音乐
- Jack OS X - “Mac OS X 的 Jack 音频连接套件实现”
- PulseAudio OS X - “Mac OS X 的 PulseAudio”
- Sound Pusher - “Mac OS X 的虚拟音频设备、实时编码器和 SPDIF 转发器”
- Zirkonium - “用于 MacOS X 上多通道声音 空间化的基础设施和应用。”
- BlackHole - “一种现代 macOS 虚拟音频驱动程序,允许应用程序以零额外延迟将音频传递给其他应用程序。”
非自由
- Audio Hijack, SoundSource - "从 Mac 上的任何位置捕获音频","获得对 Mac 上所有音频的真正强大控制!"
- Sound Siphon, Sound Control - 系统/应用音频录制,按应用音量,系统音频均衡器
- SoundBunny - "独立控制应用程序音量。"
- Boom 2 - "Mac 上最佳的音量增强器与均衡器"
License
Copyright © 2016-2026 Background Music contributors. Licensed under GPLv2, or any later version.
Background Music includes code from:
- Core Audio User-Space Driver Examples, original license, Copyright (C) 2013 Apple Inc. All Rights Reserved.
- Core Audio Utility Classes, original license, Copyright (C) 2014 Apple Inc. All Rights Reserved.
[1] 然而,如果音乐播放器不支持 AppleScript,或者不支持 Background Music 所需的事件(isPlaying、isPaused、play 和 pause),则添加支持可能需要付出显著更多的努力。(并且在某些情况下,可能需要对音乐播放器本身进行修改。)↩