public async void GetMiracast() { Projection p = new Projection(); while (this.ScreenMiracast) { MiracastLibrary s = await p.GetDeviceList(); this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate() { foreach (AreaParty.info.miracast.Screen sc in s.value) { MyListBoxItem temp = new MyListBoxItem { Name = sc.name, ImagePath = "/styles/skin/item/item_tv.png" }; if (!Miracast.Contains(temp)) { Miracast.Add(new MyListBoxItem { Name = sc.name, ImagePath = "/styles/skin/item/item_tv.png" }); } } }); Thread.Sleep(1000); } }
private static DeviceInformationCollection deviceInfoColl = null; //设备信息集合 /// <summary> /// 获取mriacast设备列表 /// </summary> /// <returns></returns> public async Task <MiracastLibrary> GetDeviceList() { try { MiracastLibrary library = new MiracastLibrary(new List <info.miracast.Screen>()); deviceInfoColl = await DeviceInformation.FindAllAsync(aqsFilter); for (int i = 0; i < deviceInfoColl.Count; i++) { library.value.Add(new info.miracast.Screen(deviceInfoColl[i].Name, i)); } //string json = JsonConvert.SerializeObject(library); return(library); } catch (Exception e) { log.Error("读取MIRACAST设备出错", e); return(new MiracastLibrary(new List <info.miracast.Screen>())); } }