audio_output_device_check 0.1.2 copy "audio_output_device_check: ^0.1.2" to clipboard
audio_output_device_check: ^0.1.2 copied to clipboard

Detect active audio output device and monitor output changes across Flutter platforms.

audio_output_device_check #

pub package License: MIT CI

Flutter plugin to detect current audio output device and listen for output changes.

Supported Platforms #

  • Android: supported
  • iOS: supported
  • macOS: supported
  • Windows: supported (snapshot + name detection)
  • Linux: supported (snapshot + name detection via pactl when available)

Installation #

Add dependency in your app pubspec.yaml:

dependencies:
  audio_output_device_check: ^0.1.1

Usage #

import 'package:audio_output_device_check/audio_output_device_check.dart';

final plugin = AudioOutputDeviceCheck();
plugin.audioDeviceStreamWithPermission(
  autoRequestAndroidBluetoothPermission: true,
).listen((device) {
  print('Audio output changed: ${device.type} - ${device.name}');
});

Android Bluetooth Permission API #

Plugin provides optional Android BLUETOOTH_CONNECT permission helpers:

final status = await plugin.getBluetoothConnectPermissionStatus();
final requested = await plugin.requestBluetoothConnectPermission();

Behavior:

  • On Android: permission can be requested automatically when stream starts.
  • On non-Android platforms: permission APIs return BluetoothPermissionStatus.notApplicable.
  • On permission/API failures: plugin returns safe fallback device info instead of throwing.

Device Type Values #

AudioDeviceInfo.type can be:

  • bluetooth
  • wired
  • speaker
  • unknown

Notes #

  • Linux device name detection uses pactl command output. If unavailable, fallback value is returned.
  • Stream emits current snapshot on listen; additional real-time update behavior depends on platform capabilities.