This readme was generated using Claude AI.
Stream Bluetooth audio from your phone to your PC with a clean, modern interface.
PhoneAudioLink transforms your Windows PC into a Bluetooth audio receiver (A2DP Sink), allowing you to play music, podcasts, and any audio from your phone through your computer's speakers or headphones.
- ๐ต Stream Audio - Play audio from your phone through your PC speakers
- ๐ต Bluetooth A2DP Sink - Leverages Windows 11's native A2DP support
- ๐จ Modern UI - Clean, intuitive interface with animated buttons
- ๐ System Tray Integration - Minimize to tray and control from notification area
- ๐พ Auto-Reconnect - Remembers your device and reconnects automatically
- โ๏ธ Easy Setup - Automatic device discovery and one-click connection
- ๐ Theme Support - Adapts to Windows light/dark mode
- Wireless Audio - Eliminate the need for AUX cables
- Multiple Speakers - Use your PC's better speakers for phone audio
- Hands-Free - Control playback while working at your computer
- Presentations - Play phone audio during presentations
- Gaming - Listen to music from your phone while gaming on PC
- Windows 10 version 2004 (May 2020 Update) or later
- Bluetooth adapter (built-in or USB)
- Phone with Bluetooth (iPhone, Android, or any A2DP source device)
- Visual Studio 2019/2022 with C++ desktop development
- Qt 6.2+ compiled with MSVC (MinGW not supported)
- Windows SDK 10.0.19041.0 or later
- MSVC compiler (required for WinRT support)
- Download the latest release from Releases
- Run the installer
- Pair your phone in Windows Settings โ Bluetooth & devices
- Connect via the app and enjoy!
# Clone the repository
git clone https://github.com/yourusername/PhoneAudioLink.git
cd PhoneAudioLink
# Open in Qt Creator
qtcreator PhoneAudioLink.pro
# Run and build in qt creator-
Pair Your Phone
- Open Windows Settings โ Bluetooth & devices
- Turn on Bluetooth
- Click "Add device" โ Bluetooth
- Select your phone and complete pairing
-
Launch PhoneAudioLink
- The app will automatically discover paired devices
- Your phone should appear in the device dropdown
-
Connect
- Select your phone from the dropdown
- Click the "Connect" button
- Wait for "Connected" status
-
Play Audio
- Start playing music/videos on your phone
- Audio will stream through your PC speakers!
PhoneAudioLink uses a hybrid architecture combining Qt for UI and Windows Runtime (WinRT) for Bluetooth:
Phone (A2DP Source)
โ Bluetooth
Windows 10 Native A2DP Sink
โ AudioPlaybackConnection API
PhoneAudioLink (Qt + WinRT)
โ
PC Speakers
- Qt 6 - Cross-platform UI framework
- C++/WinRT - Modern C++ projection for Windows Runtime
- Windows.Media.Audio.AudioPlaybackConnection - Native A2DP sink
- Windows.Devices.Enumeration.DeviceWatcher - Bluetooth device discovery
- Qt Bluetooth - Additional device information
- โ A2DP protocol negotiation
- โ SBC audio codec decoding
- โ Audio buffer management
- โ Routing to output devices
- โ Connection reliability
- โ Device discovery and selection
- โ Connection management
- โ User interface
- โ Status notifications
- โ Settings persistence
- Maximize Bluetooth Compatibility - Show all Bluetooth devices (not just phones)
- Connect Automatically - Auto-connect to last device on startup
- Start Minimized - Launch to system tray
Settings are saved to init.json in the application directory.
Status: Not implemented
When your PC acts as an A2DP Sink (receiving audio), the play/pause/forward/back buttons don't control phone playback. This is an architectural limitation of the Bluetooth A2DP Sink profile, not a bug.
Workaround: Use your phone's physical controls for playback (for now).
Technical Reason: Media control requires AVRCP Controller implementation, which is a separate Bluetooth profile that will require significant additional development (~1000+ lines of protocol code). Expect this to take a while to implement!
Status: SBC only
Windows 10's native A2DP Sink only supports the SBC (Subband Coding) codec. Higher-quality codecs (AAC, aptX, LDAC) are not available.
Audio Quality: Good enough for most use cases (music, podcasts, videos).
Status: Windows only
This implementation uses Windows-specific APIs (WinRT) and cannot be ported to Linux or macOS without complete reimplementation using platform-specific Bluetooth stacks.
- Connection History - Quick access to recently connected devices
- Keyboard Shortcuts - Global hotkeys for common actions
- Notification Customization - Choose which notifications to show
- Connection Status Indicator - Visual feedback for connection quality
- Track Information Display - Show currently playing song/artist
- Album Artwork - Display album cover in UI
- Playback Timeline - Show progress bar and time remaining
- Battery Level Indicator - Display phone battery status
- Audio Recording - Capture streaming audio to file
- Auto-reconnect on Wake - Reconnect when PC wakes from sleep
- AVRCP Controller Implementation - Full media control from PC
- Play/pause/forward/back functionality
- Volume control via AVRCP
- Track metadata retrieval
- Requires ~1000+ lines of Bluetooth protocol code
- Custom Audio Processing - EQ, effects, enhancements
- Codec Support - AAC, aptX (requires third-party drivers)
Have a feature idea? Open an issue with the enhancement label!
- Cause: Not using MSVC compiler or Windows SDK not installed
- Fix: Ensure using MSVC (not MinGW) and install Windows SDK 10.0.19041.0+
- Cause: Device not properly paired or outdated Windows version
- Fix: Pair device in Windows Settings, ensure Windows 10 2004+
- Cause: Device not paired or Bluetooth turned off
- Fix: Pair device in Windows Settings โ Bluetooth & devices
- Cause: Bluetooth interference or distance
- Fix: Restart the app, move phone closer to PC, remove obstacles, disable other Bluetooth devices
- Cause: Wrong compiler or missing dependencies
- Fix: Use MSVC compiler, install Qt with MSVC support, install Windows SDK
- A work in progress!
- AudioSink by DanTheMan827 - Original concept and inspiration
- AudioPlaybackConnector by ysc3839 - WinRT implementation reference
- Qt Framework - The Qt Company
- C++/WinRT - Microsoft
- Windows 10 A2DP Sink - Microsoft
Contributions are welcome! Here's how you can help:
- Report Bugs - Open an issue with detailed reproduction steps
- Submit Pull Requests - Fork, modify, and submit PRs
- Improve Documentation - Help make guides clearer
- Share - Star the repo and tell others!
- Issues: GitHub Issues
- Email: [email protected]
If PhoneAudioLink helped you, please:
- โญ Star this repository
- ๐ Contribute to the project
Made with โค๏ธ and Qt
Stream your audio, wirelessly.
