getAvailableAudioOutputs method

  1. @override
Future<List<AudioOutputDevice>> getAvailableAudioOutputs()
override

Gets the list of available audio output devices.

Implementation

@override
Future<List<AudioOutputDevice>> getAvailableAudioOutputs() async {
  try {
    final list = await methodChannel
        .invokeListMethod<dynamic>('getAvailableAudioOutputs')
        .timeout(methodTimeout);
    if (list == null) return [];
    return list
        .whereType<Map<dynamic, dynamic>>()
        .map((map) => AudioOutputDevice.fromMap(map))
        .toList();
  } catch (e, stack) {
    debugPrint('AudioPicker: getAvailableAudioOutputs error: $e\n$stack');
    return const [
      AudioOutputDevice(
        id: 'builtin_speaker',
        name: 'Speaker',
        type: AudioOutputType.speaker,
        isSelected: true,
      ),
    ];
  }
}