flutter_audio_manager_plus 0.0.1 copy "flutter_audio_manager_plus: ^0.0.1" to clipboard
flutter_audio_manager_plus: ^0.0.1 copied to clipboard

A new Flutter project.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter_audio_manager_plus/flutter_audio_manager_plus.dart';

void main() => runApp(const MyApp());

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  AudioInput _currentInput = const AudioInput("unknow", 0);
  List<AudioInput> _availableInputs = [];

  @override
  void initState() {
    super.initState();
    init();
  }

  Future<void> init() async {
    FlutterAudioManagerPlus.setListener(() async {
      if (kDebugMode) {
        print("-----changed-------");
      }
      await _getInput();
      setState(() {});
    });

    await _getInput();
    if (!mounted) return;
    setState(() {});
  }

  _getInput() async {
    _currentInput = await FlutterAudioManagerPlus.getCurrentOutput();
    if (kDebugMode) {
      print("current:$_currentInput");
    }
    _availableInputs = await FlutterAudioManagerPlus.getAvailableInputs();
    if (kDebugMode) {
      print("available $_availableInputs");
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Padding(
            padding: const EdgeInsets.all(10),
            child: Column(
              children: <Widget>[
                Text(
                  "current output:${_currentInput.name} ${_currentInput.port}",
                ),
                const Divider(),
                Expanded(
                  child: ListView.builder(
                    itemBuilder: (_, index) {
                      AudioInput input = _availableInputs[index];
                      return Row(
                        children: <Widget>[
                          Expanded(child: Text(input.name)),
                          Expanded(child: Text("${input.port}")),
                        ],
                      );
                    },
                    itemCount: _availableInputs.length,
                  ),
                ),
              ],
            ),
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () async {
            bool res = false;
            if (_currentInput.port == AudioPort.receiver) {
              res = await FlutterAudioManagerPlus.changeToSpeaker();
              if (kDebugMode) {
                print("change to speaker:$res");
              }
            } else {
              res = await FlutterAudioManagerPlus.changeToReceiver();
              if (kDebugMode) {
                print("change to receiver:$res");
              }
            }
            await _getInput();
          },
        ),
      ),
    );
  }
}
11
likes
100
pub points
72%
popularity

Publisher

unverified uploader

A new Flutter project.

Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_audio_manager_plus