PackageTrack
Sign in Get early access

audio_router

Flutter plugin for audio output routing. Switch between speaker, receiver, Bluetooth, and other devices with native UI. Supports both VoIP and media playback apps.

1.1.1 vagabondms/audio_router

What this package is like to depend on

Last release 8 months ago

22 Dec 2025

Ships on a steady schedule

a new release about every 5 weeks

Nearly every release is documented

notes for 5 of 5 stable releases

Nothing withdrawn

no release was ever pulled

10 months old

5 releases · first in 2025

5 releases in the last 12 months

see the full history below

Release timeline

5 releases · Oct 2025 to Dec 2025
2026
Release Pre-release

Releases

latest 5
  1. 1.1.1 22 Dec 2025
    Release notes

    Bug Fixes

    • Android Compatibility: Fixed NoSuchMethodError crash on Android 10 (API 29) when accessing communicationDevice.
      • Added API level checks for Android 12+ (API 31) methods.
      • Implemented legacy fallbacks (setSpeakerphoneOn, startBluetoothSco) for older Android versions.
    Open source →
  2. 1.1.0 18 Nov 2025
    Release notes

    New Features

    • API Refactoring: Separated audio route picker functionality into three distinct methods:
      • showAudioRoutePicker(): Shows picker UI only (no automatic toggle)
      • tryChangeAudioRoute(): Shows picker or toggles based on available devices (smart behavior)
      • toggleSpeakerMode(): Toggles between built-in speaker and receiver only
    • Customizable Device Names: Added deviceNames parameter to showAudioRoutePicker() and tryChangeAudioRoute() for custom device display names on Android
    • Customizable Dialog Title: Added dialogTitle parameter to showAudioRoutePicker() and tryChangeAudioRoute() for custom dialog title on Android
    • Default Localization: Added default English and Korean device name maps (defaultEnglishNames, defaultKoreanNames)

    Improvements

    • More flexible API: customize device names and dialog title per function call
    • Better separation of concerns: picker display vs. smart routing vs. toggle
    • Refactored AudioDevicePickerStrings to use Map-based structure for better maintainability

    Notes

    • showAudioRoutePicker() behavior changed: now only shows picker UI without toggle logic
    • Use tryChangeAudioRoute() for the previous showAudioRoutePicker() behavior (picker or toggle)
    • iOS uses native picker, so deviceNames and dialogTitle parameters are ignored on iOS
    Open source →
  3. 1.0.2 20 Oct 2025
    Release notes

    Documentation

    • Improved README with beginner-friendly language and better structure
    • Added Quick Start section for immediate usage
    • Added Troubleshooting section with common issues
    • Clarified that media apps can use .media() option for full device support
    • Added personal project disclaimer
    • Reduced verbosity while maintaining technical accuracy (19% shorter)
    Open source →
  4. 1.0.1 17 Oct 2025
    Release notes

    Bug Fixes

    • Fix pub.dev publish requirements
    • Remove unnecessary @protected annotations from platform interface
    • Remove unnecessary imports
    Open source →
  5. 1.0.0 17 Oct 2025
    Release notes

    🎉 Major Release: Package Rename & Architecture Refinement

    Breaking Changes:

    • Package renamed: speaker_modeaudio_router
      • More accurate naming that reflects the plugin's purpose
      • Class rename: SpeakerModeAudioRouter
      • Method channels renamed: speaker_modeaudio_router
      • Android package: com.joel.speaker_modecom.joel.audio_router

    Architecture Changes:

    • Audio session management removed: Plugin no longer manages audio session setup
      • Host app is now responsible for setting up audio session (AudioManager mode on Android, AVAudioSession on iOS)
      • This provides better separation of concerns and more flexibility
      • See README for audio session setup instructions

    New Features:

    • AndroidAudioOptions: Platform-specific options for device filtering
      • communication mode: VoIP devices only (SCO Bluetooth, USB Headset)
      • media mode: All output devices (A2DP Bluetooth, all USB devices)
      • all mode: Same as media (reserved for future expansion)

    Improvements:

    • Clearer documentation and API naming
    • Better separation between routing control and session management
    • More flexible device filtering on Android
    • Comprehensive README with setup examples

    Migration Guide:

    1. Update package name in pubspec.yaml: speaker_modeaudio_router
    2. Update imports: package:speaker_mode/speaker_mode.dartpackage:audio_router/audio_router.dart
    3. Rename class: SpeakerMode()AudioRouter()
    4. Set up audio session in your app before using the plugin (see README)

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive