ITADN
kyleneideck/BackgroundMusic
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

背景音乐

macOS 音频实用工具

概述
      自动暂停音乐
      应用程序音量
      录制系统音频
下载
运行 / 配置
构建和安装
卸载
故障排除
相关项目
许可证

概述

  • 当其他音频源播放/停止时,自动暂停/恢复您的音乐播放器
  • 按应用程序控制音量
  • 录制系统音频
  • 安装无需重启
注意:Background Music 仍处于 alpha 阶段。

自动暂停音乐

Background Music 会在第二个音频源播放时自动暂停您的音乐播放器,并在第二个源停止时恢复播放器。

自动暂停功能目前支持以下音乐播放器:

为新音乐播放器添加支持通常很简单。1 如果您不知道如何编程,或者只是不想 做,请随时 创建一个 issue。否则,请参见 BGMMusicPlayer.h

应用程序音量

Background Music 为系统中运行的每个应用程序提供一个音量滑块。您可以将音量较低的应用程序提升至其最大音量以上。

录制系统音频

您可以使用 Background Music 录制系统音频。在 Background Music 运行期间,启动 QuickTime Player 并选择 File > New Audio Recording(或 New Screen RecordingNew 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.appBackground Music 启动时会将自身设置为 System Settings > Sound 下的默认输出设备(退出时恢复原设置)。

开机启动(可选)

Background Music 添加到 System Settings > General > Login Items

从源代码安装

Background Music 通常在一分钟内即可完成构建。您需要 Xcode 版本 10 或更高版本。

选项 1

  1. 打开 Terminal
  2. 将以下命令复制并粘贴到 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。然而,对于 tarcurl 它并未这样做。此外,build_and_install.sh 不会通过绝对路径调用程序。此命令还使用 gzcat - | tar x 而非 tar xz,因为 gzcat 还会检查文件的完整性(gzip 文件 包含校验和),并确保不会运行 build_and_install.sh 的半下载副本。

选项 2

  1. 克隆或 下载 该项目。
  2. 如果项目是 zip 格式,请解压它。
  3. 打开 Terminal更改目录 到 包含该项目的目录。
  4. 运行:/bin/bash build_and_install.sh

该脚本在安装结束时重启系统音频进程 (coreaudiod),因此如果可以,请暂停任何正在播放音频的应用程序。

如需手动构建和安装,请参阅 MANUAL_INSTALL.md

卸载

要从系统中卸载 Background Music,请按照以下步骤操作:

  1. 打开 Terminal
  2. 要定位 uninstall.sh,请运行:cd /Applications/Background\ Music.app/Contents/Resources/
  3. 运行: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

许多其他问题列在 TODO.mdGitHub 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:


[1] 然而,如果音乐播放器不支持 AppleScript,或者不支持 Background Music 所需的事件(isPlayingisPausedplaypause),则添加支持可能需要付出显著更多的努力。(并且在某些情况下,可能需要对音乐播放器本身进行修改。)