getAvailableMicrophones method

  1. @override
Future<List<AudioInputDevice>> getAvailableMicrophones()
override

Gets the list of available microphone / audio input devices.

Implementation

@override
Future<List<AudioInputDevice>> getAvailableMicrophones() async {
  try {
    final list = await methodChannel
        .invokeListMethod<dynamic>('getAvailableMicrophones')
        .timeout(methodTimeout);
    if (list == null) return [];
    return list
        .whereType<Map<dynamic, dynamic>>()
        .map((map) => AudioInputDevice.fromMap(map))
        .toList();
  } catch (e, stack) {
    debugPrint('AudioPicker: getAvailableMicrophones error: $e\n$stack');
    return const [
      AudioInputDevice(
        id: 'builtin_mic',
        name: 'Built-in Microphone',
        type: AudioInputType.builtInMic,
        isSelected: true,
      ),
    ];
  }
}