Package selection guidance compiled from public package information, community data, and project usage.
A Flutter plugin that enables control of system volume and real-time listening for volume changes across Android, iOS, macOS, Windows, and Linux. It provides a consistent API to adjust volume levels and respond to user-driven or system-triggered volume adjustments. Ideal for media apps, audio players, or any application requiring precise volume management. The plugin abstracts platform-specific implementations, ensuring cross-platform compatibility with minimal setup.
Use cases
Media player volume control
Real-time volume monitoring
Audio app integration
System-level volume adjustment
Cross-platform audio applications
Key features
Cross-platform volume control
Volume change event listeners
Platform-agnostic API
Support for Android, iOS, macOS, Windows, and Linux
Simple integration via pub add
Suitable for
Audio and media applications
Apps needing system volume access
Developers targeting multiple platforms
Interactive audio experiences
Applications requiring volume feedback
Considerations
Requires platform-specific permissions on some OS
Limited to system volume (not app-specific)
Behavior may vary slightly between platforms
Not suitable for low-level audio processing
May require additional configuration on desktop platforms
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Flutter Volume Controller
A Flutter plugin to control system volume and listen for volume changes on different platforms.
Features
Control system and media volumes.
Listen for volume changes.
Platform Support
✅ Android
✅ iOS
✅ macOS
✅ Windows
✅ Linux
✅ ohos
Swift Package Manager Support
This plugin supports Swift Package Manager (SPM) on Apple platforms:
On iOS, volume control uses MPVolumeView internally which does not works on simulator. Please uses physical
device for testing.
Fine-grained volume control
Due to platform and device difference, it's normal that volume level could not be controlled
precisely.
For example, Android supports only 15 volume steps by default, the volume after being set would be
a rounded off value.
Audio devices without volume control
On desktop platforms like Windows and Linux, you may encounter PlatformException if the default
audio device doesn't support volume control, like an external monitor.
Controlling Android volume slider UI
Currently there is no trivial way to control the volume slider invoked by physical buttons on
Android in plugin level. You may override FlutterActivity::onKeyDown to customize the buttons action.