audio_router 1.1.1 copy "audio_router: ^1.1.1" to clipboard
audio_router: ^1.1.1 copied to clipboard

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 #

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.

1.1.0 #

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

1.0.2 #

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)

1.0.1 #

Bug Fixes #

  • Fix pub.dev publish requirements
  • Remove unnecessary @protected annotations from platform interface
  • Remove unnecessary imports

1.0.0 #

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

0.0.1 #

  • Initial release
  • Implemented audio output routing control for iOS and Android
  • Implemented external audio device connection status detection
  • Provided audio state change streams
1
likes
140
points
178
downloads

Publisher

unverified uploader

Weekly Downloads

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

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on audio_router

Packages that implement audio_router