voip_audio_route_manager 1.1.1
voip_audio_route_manager: ^1.1.1 copied to clipboard
VoIP Audio Route Manager: A production-ready Flutter package for advanced audio output device management and routing for VoIP communication applications.
1.1.1 - 2026-06-22 #
Fixed #
- iOS: Automatically detect active CallKit or WebRTC sessions and bypass native
setActive(true/false)calls to prevent conflicts and call disconnects. - iOS: Prevent
clearAudioRoutefrom deactivating the active call session. - iOS: Synchronized Swift Package Manager (SPM) and CocoaPods implementations to resolve missing methods.
1.1.0 - 2026-06-17 #
Added #
- VoIP call session lifecycle APIs:
startCallSession()andendCallSession(). - Verified route selection APIs returning
AudioRouteResult. clearAudioRoute()to release explicit route requests and properly tear down audio sessions when calls end.getAvailableRoutes()— query currently available audio output devices before switching.onRouteChangedstream — reactive stream for OS-level audio route changes.AudioRoutemodel withAudioRouteTypeenum for type-safe route handling.
Fixed #
- Android:
switchToSpeaker()silently failing when app launched from terminated state viaflutter_callkit_incoming(FCM inbound call scenario). - Android 12+ (API 31+): Replaced deprecated
setSpeakerphoneOn()withAudioManager.setCommunicationDevice()for reliable speaker routing. - Android:
AudioManagernow set toMODE_IN_COMMUNICATIONbefore every route change. - Android:
AudioFocusRequestproperly requested withUSAGE_VOICE_COMMUNICATION. - Both platforms: Added
AudioDeviceCallback(Android) /AVAudioSessionnotification (iOS) soonRouteChangedstream reflects the real OS-level route, not the intended one.
1.0.0 #
- Initial stable, production-ready release of
voip_audio_route_manager. - Implements unified audio output device discovery, routing, and management for VoIP communication applications.
- Implements a federated structure with support across Android, iOS, macOS, and Web:
- Android: Routing via Kotlin APIs and
AudioManager. - iOS: AVAudioSession configuration, preferred route settings, and iPad-specific earpiece support.
- macOS: Native output route discovery and management.
- Web: Fully conforms to the W3C Audio Output Devices API:
- Select audio output devices with
selectAudioOutput()including optionaldeviceIdsupport. - Automatically routes HTMLMediaElements and Web Audio
AudioContextinstances programmatically using ES6 Proxy interception andWeakReftracking. - Resolves browser privacy issues by prompting for permissions before listing Bluetooth and other outputs.
- Select audio output devices with
- Android: Routing via Kotlin APIs and