scanAllDlnaDevices function
Future<List<DiscoveredDevice> >
scanAllDlnaDevices({
- Duration scanDuration = const Duration(seconds: 3),
- dynamic onDeviceFound()?,
Scan for all DLNA devices (including Renderers and Media Servers)
onDeviceFound
回調函數,當找到新裝置時調用
Implementation
Future<List<DiscoveredDevice>> scanAllDlnaDevices({
Duration scanDuration = const Duration(seconds: 3),
Function(DiscoveredDevice)? onDeviceFound,
}) async {
final logger = AppLogger();
await logger.info('info.start_all_dlna_scan', tag: 'SSDP');
// 使用 Future.wait 同時掃描兩種裝置
final results = await Future.wait([
scanDlnaRendererDevices(
scanDuration: scanDuration,
onDeviceFound: onDeviceFound,
),
scanDlnaMediaServerDevices(
scanDuration: scanDuration,
onDeviceFound: onDeviceFound,
),
]);
final renderers = results[0];
final mediaServers = results[1];
final devices = [...renderers, ...mediaServers];
await logger.info(
'info.all_dlna_scan_complete',
tag: 'SSDP',
params: {'count': devices.length},
);
return devices;
}