getDeviceList method
dynamic
getDeviceList()
Implementation
getDeviceList() async {
int audioInputIdx = 0;
int audioOutputIdx = 0;
int videoInputIdx = 0;
Map<int, dynamic> audioInput = {};
Map<int, dynamic> audioOutput = {};
Map<int, dynamic> videoInput = {};
List<MediaDeviceInfo> deviceInfos =
await navigator.mediaDevices.enumerateDevices();
for (final deviceInfo in deviceInfos) {
if (deviceInfo.kind == 'audioinput') {
audioInput[audioInputIdx] = <String, String>{
'deviceId': deviceInfo.deviceId,
'label': deviceInfo.label,
};
audioInputIdx++;
} else if (deviceInfo.kind == 'audiooutput') {
audioOutput[audioOutputIdx] = <String, String>{
'deviceId': deviceInfo.deviceId,
'label': deviceInfo.label,
};
audioOutputIdx++;
} else if (deviceInfo.kind == 'videoinput') {
videoInput[videoInputIdx] = <String, String>{
'deviceId': deviceInfo.deviceId,
'label': deviceInfo.label,
};
videoInputIdx++;
}
}
Map<dynamic, dynamic> deviceList = {};
deviceList["audioinput"] = audioInput;
deviceList["audiooutput"] = audioOutput;
deviceList["videoinput"] = videoInput;
return deviceList;
}