WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
Hear your Android phone through the headphones connected to your Mac.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Most good headphones hold one Bluetooth connection at a time, so using them with your phone means unpairing them from your Mac and pairing them back afterwards.
You cannot fix that with Bluetooth. macOS has no A2DP sink, so a Mac can never appear in a phone's output list as a speaker. This moves the audio instead: over USB or your own network, out of whatever your Mac is already playing to.
| Mac | macOS 14+ | Apple silicon or Intel |
| Phone | Android 11+ | USB debugging enabled |
| Output | Any device | Headphones, a USB DAC, or speakers |
| Tools | scrcpy and adb | Both free, both on Homebrew |
| Install | Homebrew or DMG | Signed and notarized, universal |
brew install --cask nicglazkov/tap/pixel-audio-bridge
brew install --cask android-platform-tools # skip if you have Android Studio
Two commands. The first brings the app, scrcpy and the pab command; the
second brings adb, which is only missing if you do not already have the
Android SDK. The app checks for both on launch and tells you if either is
absent, so there is nothing to get wrong.
Or download PixelAudioBridge.dmg and drag it to Applications.
Opens like any other Mac app. Apple has checked it for malware, so macOS will not warn you or block it. Universal, so it runs on Apple silicon and Intel.
Already have Android Studio? adb is at ~/Library/Android/sdk/platform-tools
and the app finds it there, so skip the second command.
Your phone needs Developer options unlocked first, then either USB debugging or
Wireless debugging depending on whether you are using a cable. No route skips
this, because the bridge reaches your phone through adb.
The getting started guide
walks both, with a picture of every screen you need to find.
No cable at all? pab pair does the whole Wi-Fi pairing. It finds the phone
on your network, asks only for the six digit code the phone shows, and looks up
the separate port it has to connect on, so the two are never mixed up. With a
cable already attached, pab enable-wireless is quicker.
brew install scrcpy
git clone https://github.com/nicglazkov/pixel-audio-bridge.git
cd pixel-audio-bridge && ./build.sh
open build/PixelAudioBridge.app
./build.sh produces a universal binary signed ad hoc, which is fine for your
own machine. SIGN=developer ./build.sh signs with a Developer ID under
hardened runtime, and ./release.sh runs the full notarized release pipeline.
| When | It does |
|---|---|
| You put your headphones on | Starts by itself, within about a second |
| You take them off | Goes quiet and waits, then resumes when they return |
| You unplug the cable | Moves to Wi-Fi and widens the buffer |
| Your Mac's output changes | Halts instead of following it |
| You quit the app | Tears down every child process |
Closing the window does not stop playback. The app lives in the menu bar.
| Link | Buffer | Bluetooth | Total |
|---|---|---|---|
| Wired, USB | 15 ms | 170.7 ms | 191 ms |
| Wireless, Wi-Fi | 200 ms | 170.7 ms | 376 ms |
The Bluetooth figure is identical in both because it happens inside the headphones. It is 89% of the wired budget and nothing on either machine changes it, so everything this software controls is the twenty milliseconds beside it.
Measured with AirPods Max. A wired output device skips that stage almost entirely. How each number was measured
pab run [--wired|--wireless] [--buffer MS] [--device UID] [--serial S]
pab pair # pair over Wi-Fi, no cable needed
pab stop | status | info | doctor | enable-wireless
pab doctor reports dependencies, devices, transports and config in one pass.
Start there when something is wrong.
Homebrew puts pab on your PATH. If you installed from the disk image instead,
it lives inside the app:
/Applications/PixelAudioBridge.app/Contents/Resources/pab doctor
| Getting started | Setting the phone up, step by step, with or without a cable |
| How it works | The internals, the watchdog, and how every number was measured |
| Troubleshooting | No sound, clicks, wireless resets, and the rest |
| Privacy | What is stored, and what leaves your machine. Nothing does |
| Security | Threat model, accepted risks, and how to report a vulnerability |
| Contributing | Layout, tests, and what will get pushed back on |
./tests/run.sh
78 tests, none needing a phone, headphones or any audio hardware.
scrcpy does the capture and playback, and this would not exist without it. See NOTICE for attribution.
MIT licensed. See LICENSE.