背景音乐
macOS 音频实用工具
概述
自动暂停音乐
应用程序音量
录制系统音频
下载
运行 / 配置
构建和安装
卸载
故障排除
相关项目
许可证
概述
- 当其他音频源播放/停止时,自动暂停/恢复您的音乐播放器
- 每个应用程序的音量控制
- 录制系统音频
- 无需重启即可安装
注意:背景音乐仍处于 alpha 阶段。
自动暂停音乐
背景音乐在第二个音频源播放时自动暂停您的音乐播放器,并在第二个音源停止时恢复播放。
自动暂停功能目前支持以下音乐播放器:
为新的音乐播放器添加支持通常很简单。1如果您不知道如何编程,或者只是不想这么做,可以随时创建一个问题。否则,请参阅BGMMusicPlayer.h。
应用程序音量
背景音乐为系统上运行的每个应用程序提供音量滑块。您可以将安静的应用程序音量提升到最大音量之上。
录制系统音频
您可以使用背景音乐录制系统音频。运行背景音乐后,启动QuickTime Player并选择文件 > 新建音频录制(或新建屏幕录制,新建影片录制)。然后点击录制按钮旁边的下拉菜单(⌄
),选择背景音乐作为输入设备。
您可以通过创建聚合设备来同时录制系统音频和麦克风,该设备将您的输入设备(通常是内置输入)与背景音乐设备结合在一起。您可以使用***/应用程序/实用工具*下的音频 MIDI 设置**实用程序创建聚合设备。
下载
需要 macOS 10.13+。
您可以使用以下选项下载背景音乐的当前版本。我们还提供快照构建。
选项 1
下载0.4.3 版本:
BackgroundMusic-0.4.3.pkg (771 KB)
MD5: 8c3bfe26c9cdf27365b9843f719ef188
SHA256: c1c48a37c83af44ce50bee68879856c96b2f6c97360ce461b1c7d653515be7fd
PGP: sig, key (0595DF814E41A6F69334C5E2CAA8D9B8E39EC18C)
选项 2
使用 Homebrew 安装,在终端中运行以下命令:
brew install --cask background-music
如果您想要最新的快照版本,请运行:
brew tap homebrew/cask-versions
brew install --cask background-music-pre
运行 / 配置
只需运行应用程序 > 背景音乐.app
!在启动时,背景音乐会将自己设置为系统设置 > 声音
下的默认输出设备(并在退出时恢复设置)。
开机启动(可选)
将背景音乐添加到系统设置 > 通用 > 登录项
。
从源代码安装
背景音乐通常需要不到一分钟的时间来构建。您需要 Xcode 10 或更高版本。
选项 1
- 打开终端。
- 将以下命令复制并粘贴到终端中:
(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。
卸载
要从系统中卸载背景音乐,请按照以下步骤操作:
- 打开终端。
- 要定位
uninstall.sh
,请运行:cd /Applications/Background\ Music.app/Contents/Resources/
。 - 运行:
bash uninstall.sh
。
如果您无法找到 uninstall.sh
,可以再次下载项目。
要手动卸载,请参阅 MANUAL_UNINSTALL.md。
故障排除
如果 Background Music 崩溃导致音频停止工作,请打开"系统设置 > 声音",将系统默认输出设备更改为 Background Music 设备以外的其他设备。如果默认设备已经不是 Background Music 设备,则更改默认设备然后再改回来。
首次运行 Background Music 时请确保允许"麦克风访问"。如果之前拒绝了,请到"系统设置 > 安全性与隐私 > 隐私 > 麦克风",在列表中找到 Background Music 并勾选旁边的复选框。Background Music 实际上并不会监听您的麦克风。它需要此权限是因为它通过虚拟输入设备获取系统音频,而 macOS 将其视为麦克风。(我们正在 #177 中解决这个问题。)
如果某个应用的音量滑块不起作用,请尝试在"更多应用"中查找类似"某应用(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 导致 Chrome 在您打开 Background Music 后无法切换到 Background Music 设备。
- Chrome 的音频仍会播放,但 Background Music 无法识别。
-
一些应用程序播放的通知声音时间刚好足以触发自动暂停。
- 增加 BGMAutoPauseMusic.mm 中的
kPauseDelayNSec
常量。这会增加音乐与其他音频的重叠时间,所以不要增加太多。详情请参阅 #5。
- 增加 BGMAutoPauseMusic.mm 中的
TODO.md 和 GitHub Issues 中列出了许多其他问题。
相关项目
- Core Audio User-Space Driver Examples 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 上最佳的音量增强器和均衡器"
许可证
版权所有 © 2016-2024 Background Music 贡献者。 根据 GPLv2 或任何更新版本许可。
Background Music 包含来自以下项目的代码:
- Core Audio User-Space Driver Examples, 原始许可证, 版权所有 (C) 2013 Apple Inc. 保留所有权利。
- Core Audio Utility Classes, 原始许可证, 版权所有 (C) 2014 Apple Inc. 保留所有权利。
[1] 然而,如果音乐播放器不支持 AppleScript,或不支持 Background Music 需要的事件(isPlaying
、isPaused
、play
和 pause
),则添加支持可能需要更多努力。(在某些情况下可能需要对音乐播放器本身进行修改。) ↩