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;amp;"); 
+                a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;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;amp;");
                 var metadata = track.SearchForTextOfTag("Metadata").Replace("&", "&amp;");
                 var item = SecurityElement.FromString(metadata).SearchForChildByTag("item");
-                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;"); 
+                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;");
                 musicInfo.Artist = item.SearchForTextOfTag("upnp:artist").Replace("&", "&amp;amp;");
                 musicInfo.Album = item.SearchForTextOfTag("upnp:album").Replace("&", "&amp;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("&amp;lt;dc:title&amp;gt;" + tempMusicInfo.Title + "&amp;lt;/dc:title&amp;gt;");
                 sb.AppendLine("&amp;lt;dc:creator&amp;gt;DJ Sanny J&amp;lt;/dc:creator&amp;gt;");
-                if (musicSource== "鎴戠殑鍒楄〃") {
+                if (musicSource == "鎴戠殑鍒楄〃")
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + listName + "&amp;lt;/upnp:artist&amp;gt;");
                 }
-                else {
+                else
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + tempMusicInfo.Artist + "&amp;lt;/upnp:artist&amp;gt;");
                 }
                 sb.AppendLine("&amp;lt;upnp:album&amp;gt;" + tempMusicInfo.Album + "&amp;lt;/upnp:album&amp;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