yosemiteyss / flutter_volume_controller

A Flutter plugin to control system volume and listen for volume changes on different platforms.
https://pub.dev/packages/flutter_volume_controller
MIT License
16 stars 9 forks source link
android flutter flutter-plugin ios

Flutter Volume Controller

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

pub package

Features

Platform Support

Example

Custom Volume Slider

Usage

Control System UI Visibility

Get Volume

final volume = await FlutterVolumeController.getVolume();

Set Volume

await FlutterVolumeController.setVolume(0.5);

Increase Volume

await FlutterVolumeController.raiseVolume(0.2);
await FlutterVolumeController.raiseVolume(null);

Decrease Volume

await FlutterVolumeController.lowerVolume(0.2);
await FlutterVolumeController.lowerVolume(null);

Check Mute

final isMuted = await FlutterVolumeController.getMute();

Set Mute

await FlutterVolumeController.setMute(true);
await FlutterVolumeController.setMute(false);

Toggle Mute

await FlutterVolumeController.toggleMute();

Set Audio Stream on Android

await FlutterVolumeController.setAndroidAudioStream(stream: AudioStream.system);

Get Audio Stream on Android

final stream = await FlutterVolumeController.getAndroidAudioStream();

Set Audio Session Category on iOS

await FlutterVolumeController.setIOSAudioSessionCategory(category: AudioSessionCategory.playback);

Get Audio Session Category on iOS

final category = await FlutterVolumeController.getIOSAudioSessionCategory();

Listen for Volume Changes

@override
void initState() {
  super.initState();
  FlutterVolumeController.addListener(
    (volume) {
      debugPrint('Volume changed: $volume');
    },
  );
}

@override
void dispose() {
  FlutterVolumeController.removeListener();
  super.dispose();
}

Notes

Volume controls doesn't work on iOS simulator

Fine-grained volume control

Audio devices without volume control

Controlling Android volume slider UI

Having Bugs?

Support

"Buy Me A Coffee"