flutter_volume_controller 1.2.1 copy "flutter_volume_controller: ^1.2.1" to clipboard
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.

pub package

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 to 0.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 to 0.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.
46
likes
0
pub points
95%
popularity

Publisher

unverified uploader

A Flutter plugin to control system volume and listen for volume changes on different platforms.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_volume_controller