From 097511a2a666f1206fd78fdef0e213e09b5f46df Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期六, 21 八月 2021 12:58:40 +0800 Subject: [PATCH] 2021-8-21-01 --- HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs | 106 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 96 insertions(+), 10 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs index dd36144..0a3fc25 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs @@ -4,12 +4,28 @@ using System.Net.Sockets; using System.Security; using System.Text; +using HDL_ON.DAL.Server; +using HDL_ON.Entity; using Shared; namespace HDL_ON.UI.Music { public class SendMethod { + private static SendMethod m_sendMethod=null; + public static SendMethod sendMethod + { + get + { + if (m_sendMethod == null) + { + m_sendMethod = new SendMethod(); + } + return m_sendMethod; + } + + } + /// <summary> ///鎼滅储A31闊充箰鎾斁鍣� /// </summary> @@ -209,7 +225,7 @@ a31MusicModel.A31PlayStatus.loop = se.SearchForTextOfTag("LoopMode"); a31MusicModel.A31PlayStatus.Source = se.SearchForTextOfTag("PlayMedium"); a31MusicModel.A31PlayStatus.playSource = se.SearchForTextOfTag("TrackSource"); - a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;"); + a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;"); } catch (Exception ex) @@ -463,7 +479,8 @@ /// <param name="volume">Volume.</param> public static void ControlVolume(int volume, A31MusicModel a31player) { - System.Threading.Tasks.Task.Run(() => { + System.Threading.Tasks.Task.Run(() => + { A31MusicModel.ProgressDateTime = DateTime.Now; try { @@ -526,7 +543,7 @@ musicInfo.URL = track.SearchForTextOfTag("URL").Replace("&", "&amp;"); var metadata = track.SearchForTextOfTag("Metadata").Replace("&", "&"); var item = SecurityElement.FromString(metadata).SearchForChildByTag("item"); - musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;"); + musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;"); musicInfo.Artist = item.SearchForTextOfTag("upnp:artist").Replace("&", "&amp;"); musicInfo.Album = item.SearchForTextOfTag("upnp:album").Replace("&", "&amp;"); musicInfo.Duration = item.SearchForTextOfTag("res"); @@ -597,7 +614,7 @@ /// <summary> /// 鑾峰彇褰撳墠鎾斁鐨勫垪琛� /// </summary> - public static string GetCurrentPlayList(A31MusicModel a31player) + public static string GetCurrentPlayList(A31MusicModel a31player) { System.Text.StringBuilder getPlayList = new System.Text.StringBuilder(); getPlayList.AppendLine("<?xml version=\"1.0\"encoding=\"utf-8\"?>"); @@ -656,7 +673,7 @@ /// <param name="musicInfo">鎾斁闊充箰</param> /// <param name="listName">鍒楄〃鍚嶇О</param> /// <param name="musicList">鎺ㄩ�佸垪琛�(榛樿鎺�50棣�)</param> - public static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player,string musicSource) + public static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player, string musicSource) { //鏈�澶у彂閫佺殑鏉℃暟 @@ -739,10 +756,12 @@ sb.AppendLine("&lt;dc:title&gt;" + tempMusicInfo.Title + "&lt;/dc:title&gt;"); sb.AppendLine("&lt;dc:creator&gt;DJ Sanny J&lt;/dc:creator&gt;"); - if (musicSource== "鎴戠殑鍒楄〃") { + if (musicSource == "鎴戠殑鍒楄〃") + { sb.AppendLine("&lt;upnp:artist&gt;" + listName + "&lt;/upnp:artist&gt;"); } - else { + else + { sb.AppendLine("&lt;upnp:artist&gt;" + tempMusicInfo.Artist + "&lt;/upnp:artist&gt;"); } sb.AppendLine("&lt;upnp:album&gt;" + tempMusicInfo.Album + "&lt;/upnp:album&gt;"); @@ -778,7 +797,7 @@ Play(a31player.IPAddress, a31player.Port, playString.ToString()); } - static void SendMusicLists(string ip, int port, string soapAction, string listInfo) + static void SendMusicLists(string ip, int port, string soapAction, string listInfo) { System.Net.WebClient webClient = new System.Net.WebClient(); webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#" + soapAction + "\""); @@ -788,13 +807,13 @@ byte[] recevieBytes = webClient.UploadData(new Uri("http://" + ip + ":" + port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(listInfo)); var s = System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length); } - catch(Exception e) + catch (Exception e) { var d = e.Message; } } - static void Play(string ip, int port, string info) + static void Play(string ip, int port, string info) { System.Net.WebClient webClient = new System.Net.WebClient(); webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#PlayQueueWithIndex\""); @@ -882,5 +901,72 @@ public string creator = string.Empty; } + /// <summary> + /// 鑾峰彇闊充箰鍒楄〃 + /// </summary> + public List<Function> GetMusicList + { + get + { + return FunctionList.List.GetMusicList(); + } + } + /// <summary> + /// 鍙戦�佹帶鍒跺懡浠� + /// </summary> + /// <param name="function">褰撳墠璁惧</param> + /// <param name="dic">鍙戦�佹帶鍒舵暟鎹�</param> + public void SendControlCommand(Function function, Dictionary<string, string> dic) + { + new System.Threading.Thread(() => + { + DriverLayer.Control.Ins.SendWriteCommand(function, dic); + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// 鍒锋柊璁惧鐘舵�� + /// </summary> + /// <returns></returns> + public void RefreshDeviceStatus(Function music, List<string> functionIds) + { + try + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceIds", functionIds); + var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus); + if (responsePackNew.Code != "0") + { + return; + } + //鏁版嵁杩斿簭鍒楀寲涓篎unction瀵硅薄 + var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString()); + var function = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(str); + if (function == null) + { + return; + } + music.name = function.name; + music.sid = function.sid; + music.spk = function.spk; + music.status = function.status; + music.roomIds = function.roomIds; + music.attributes = function.attributes; + } + catch { } + } + + /// <summary> + ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� + /// </summary> + /// <returns></returns> + public ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 5) + { + var requestJson = HttpUtil.GetSignRequestJson(o); + return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); + + } } } -- Gitblit v1.8.0