volume

Controll Volume in Android programatically. No IOS Implementation yet . Pull Request for ios implementation are welcome.

Streams

AudioManager.STREAM_VOICE_CALL       -> Controll IN CALL Volume
AudioManager.STREAM_SYSTEM           -> Controll SYSTEM Volume
AudioManager.STREAM_RING             -> Controll RINGER Volume
AudioManager.STREAM_MUSIC            -> Controll MEDIA Volume
AudioManager.STREAM_ALARM            -> Controll ALARM Volume
AudioManager.STREAM_NOTIFICATION     -> Controll NOTIFICATION Volume

Functions and getters

Volume Buttons will affect this volume when in app

await Volume.controlVolume(AudioManager audioManager); // pass any stream as parameter

Returns maximum possible volume in integers

await Volume.getMaxVol; // returns an integer

Returns current volume level in integers

await Volume.getVol;// returns an integer

Set volume for the stream passed to controlVolume() function

await Volume.setVol(int i); // Max value of i is less than Volume.getMaxVol

Press Volume Up button programatically

Volume.volUp(); // press volUp key.

Press Volume Down button programatically

Volume.volDown(); // press volDown key.

Usage

class _MyAppState extends State<MyApp> {
  int maxVol, currentVol;

  @override
  void initState() {
    super.initState();
    // Make this call in initState() function in the root widgte of your app
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    // pass any stream as parameter as per requirement
    await Volume.controlVolume(AudioManager.STREAM_SYSTEM);
  }

  updateVolumes() async {
    // get Max Volume
    maxVol = await Volume.getMaxVol;
    // get Current Volume
    currentVol = await Volume.getVol;
    setState(() {});
  }

  setVol(int i) async {
    await Volume.setVol(i);
  }
  // To implement the volume Up and volume Down button press programatically.
  
  FlatButton(
    child: Text("Vol Up"),
    onPressed: (){
      Volume.volUp();// Consecutively increasing the volume by 1 unit.
      updateVolumes();
    },
  ),
  FlatButton(
    child: Text("Vol Down"),
    onPressed: (){
      Volume.volDown();// Consecutively decrease the volume by 1 unit.
      updateVolumes();
    },
  )

Getting Started

This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Libraries

volume

Dart

dart:ui
Built-in types and core primitives for a Flutter application. [...]

Core

dart:async
Support for asynchronous programming, with classes such as Future and Stream. [...]
dart:collection
Classes and utilities that supplement the collection support in dart:core. [...]
dart:convert
Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
dart:core
Built-in types, collections, and other core functionality for every Dart program. [...]
dart:developer
Interact with developer tools such as the debugger and inspector. [...]
dart:math
Mathematical constants and functions, plus a random number generator. [...]
dart:typed_data
Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]

VM

dart:io
File, socket, HTTP, and other I/O support for non-web applications. [...]
dart:isolate
Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]