flutter_volume_controller 1.2.1
flutter_volume_controller: ^1.2.1 copied to clipboard
A Flutter plugin to control system volume and listen for volume changes on different platforms.
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
Usage #
Control System UI Visibility
- Set to
true
to display system volume slider when changing volume. - This settings only works on Android and iOS.
FlutterVolumeController.showSystemUI = true;
Get Volume
final volume = await FlutterVolumeController.getVolume();
Set Volume
- Notes: Android supports 15 volume steps by default, it may not be possible to set a fine-grained volume level.
await FlutterVolumeController.setVolume(0.5);
Increase Volume
- On Android and Windows, when
step
is set to null, it will uses the default system stepping value. - On iOS, macOS, Linux, if
step
is undefined, the default stepping value is set to0.15
.
await FlutterVolumeController.raiseVolume(0.2);
await FlutterVolumeController.raiseVolume(null);
Decrease Volume
- On Android and Windows, when
step
is set to null, it will uses the default system stepping value. - On iOS, macOS, Linux, if
step
is undefined, the default stepping value is set to0.15
.
await FlutterVolumeController.lowerVolume(0.2);
await FlutterVolumeController.lowerVolume(null);
Check Mute
- On Android and iOS, we check if the current volume level is already dropped to zero.
- On macOS, Windows, Linux, we check if the mute switch is turned on.
final isMuted = await FlutterVolumeController.getMute();
Set Mute
- On Android and iOS, we set the volume to either minimum or maximum level.
- On macOS, Windows, Linux, we control the mute switch. Volume will be restored once it's unmuted.
await FlutterVolumeController.setMute(true);
await FlutterVolumeController.setMute(false);
Toggle Mute
await FlutterVolumeController.toggleMute();
Set the Audio Stream on Android
- Support two types of audio stream:
AudioStream.system
,AudioStream.music
. - This method should be called to ensure that volume controls adjust the correct stream.
await FlutterVolumeController.setAndroidAudioStream(stream: AudioStream.system);
await FlutterVolumeController.setAndroidAudioStream(stream: AudioStream.music);
Listen for Volume Changes
- Use
emitOnStart
to control whether volume level should be emitted immediately right after the listener is attached.
@override
void initState() {
super.initState();
// Ensure music stream in being controlled.
FlutterVolumeController.setAndroidAudioStream(stream: AudioStream.music);
FlutterVolumeController.addListener(
(volume) {
debugPrint('Volume changed: $volume');
},
);
}
@override
void dispose() {
FlutterVolumeController.removeListener();
super.dispose();
}
Having Bugs? #
- This package is under active development. If you find any issue, please free to report them.