Skip to content

PolymorphicAgent/PhoneAudioLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

53 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PhoneAudioLink

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.

PhoneAudioLink Demo


โœจ Features

  • ๐ŸŽต 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

๐ŸŽฏ Use Cases

  • 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

๐Ÿ“‹ Requirements

Minimum System Requirements:

  • 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)

Development Requirements:

  • 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)

๐Ÿš€ Installation

For Users:

  1. Download the latest release from Releases
  2. Run the installer
  3. Pair your phone in Windows Settings โ†’ Bluetooth & devices
  4. Connect via the app and enjoy!

For Developers:

# 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

๐Ÿ“– How to Use

First-Time Setup:

  1. Pair Your Phone

    • Open Windows Settings โ†’ Bluetooth & devices
    • Turn on Bluetooth
    • Click "Add device" โ†’ Bluetooth
    • Select your phone and complete pairing
  2. Launch PhoneAudioLink

    • The app will automatically discover paired devices
    • Your phone should appear in the device dropdown
  3. Connect

    • Select your phone from the dropdown
    • Click the "Connect" button
    • Wait for "Connected" status
  4. Play Audio

    • Start playing music/videos on your phone
    • Audio will stream through your PC speakers!

๐Ÿ”ง Technical Details

Architecture

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

Key Technologies:

  • 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

What Windows Handles:

  • โœ… A2DP protocol negotiation
  • โœ… SBC audio codec decoding
  • โœ… Audio buffer management
  • โœ… Routing to output devices
  • โœ… Connection reliability

What QT Handles:

  • โœ… Device discovery and selection
  • โœ… Connection management
  • โœ… User interface
  • โœ… Status notifications
  • โœ… Settings persistence

โš™๏ธ Configuration

Settings Available:

  • 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.


โš ๏ธ Known Limitations

Media Controls

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!

Audio Codec

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).

Platform Support

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.


๐Ÿ”ฎ Future Updates

Planned Features

Short-term (Next Release)

  • 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

Medium-term (Upcoming Versions)

  • 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

Long-term (Future Vision)

  • 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)

Community Requests

Have a feature idea? Open an issue with the enhancement label!


๐Ÿ› Troubleshooting

"WinRT not initialized"

  • Cause: Not using MSVC compiler or Windows SDK not installed
  • Fix: Ensure using MSVC (not MinGW) and install Windows SDK 10.0.19041.0+

"No such interface supported"

  • Cause: Device not properly paired or outdated Windows version
  • Fix: Pair device in Windows Settings, ensure Windows 10 2004+

"Device not found"

  • Cause: Device not paired or Bluetooth turned off
  • Fix: Pair device in Windows Settings โ†’ Bluetooth & devices

Audio choppy or cutting out

  • Cause: Bluetooth interference or distance
  • Fix: Restart the app, move phone closer to PC, remove obstacles, disable other Bluetooth devices

Can't build project

  • Cause: Wrong compiler or missing dependencies
  • Fix: Use MSVC compiler, install Qt with MSVC support, install Windows SDK

๐Ÿ“š Documentation

  • A work in progress!

๐Ÿ™ Acknowledgments

Inspiration

Technologies

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Report Bugs - Open an issue with detailed reproduction steps
  2. Submit Pull Requests - Fork, modify, and submit PRs
  3. Improve Documentation - Help make guides clearer
  4. Share - Star the repo and tell others!

๐Ÿ“ง Contact


โญ Show Your Support

If PhoneAudioLink helped you, please:

  • โญ Star this repository
  • ๐Ÿ™Œ Contribute to the project

Made with โค๏ธ and Qt

Stream your audio, wirelessly.


About

Allows Seamless Bluetooth Streaming From Your Phone to Your PC

Resources

Stars

Watchers

Forks