陈嘉乐
2020-05-26 c209a50cabf524c146fb2d02ce09cfc46c7c2f70
HDL_ON/UI/Music/SendMethod.cs
@@ -315,7 +315,7 @@
        /// <summary>
        /// 播放
        /// </summary>
        public static void Play()
        public static void Play(A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
@@ -334,7 +334,7 @@
                webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                try
                {
                    webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                }
                catch { }
            });
@@ -342,7 +342,7 @@
        /// <summary>
        /// 暂停
        /// </summary>
        public static void Pause()
        public static void Pause(A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
@@ -360,7 +360,7 @@
                webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                try
                {
                    webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                }
                catch { }
            });
@@ -369,7 +369,7 @@
        /// <summary>
        /// 下一曲
        /// </summary>
        public static void Next()
        public static void Next(A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
@@ -387,7 +387,7 @@
                webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                try
                {
                    webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                }
                catch { }
            });
@@ -396,7 +396,7 @@
        /// <summary>
        /// 上一曲
        /// </summary>
        public static void Previous()
        public static void Previous(A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
@@ -414,7 +414,7 @@
                webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                try
                {
                    webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                }
                catch { }
            });
@@ -423,7 +423,7 @@
        /// <summary>
        /// 快进
        /// </summary>
        public static void Seek(string seekvolume)
        public static void Seek(string seekvolume, A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() =>
            {
@@ -443,20 +443,60 @@
                webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                try
                {
                    webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendertransport1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                }
                catch { }
            });
        }
        /// <summary>
        /// 调节音量
        /// </summary>
        /// <param name="volume">Volume.</param>
        public static void ControlVolume(int volume, A31MusicModel a31player)
        {
            System.Threading.Tasks.Task.Run(() => {
                A31MusicModel.ProgressDateTime = DateTime.Now;
                try
                {
                    if (a31player.ServerClientType == -1)
                    {
                        new System.Net.WebClient().DownloadData(new Uri("http://" + a31player.ServerIP + "/httpapi.asp?command=multiroom:SlaveVolume:" + a31player.IPAddress + ":" + volume));
                    }
                    else if (a31player.ServerClientType == 1)
                    {
                        new System.Net.WebClient().DownloadData(new Uri("http://" + a31player.IPAddress + "/httpapi.asp?command=setPlayerCmd:slave_vol:" + volume));
                    }
                    else
                    {
                        var sb = new StringBuilder();
                        sb.AppendLine("<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">");
                        sb.AppendLine("<s:Body>");
                        sb.AppendLine("<u:SetVolume xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\">");
                        sb.AppendLine("<InstanceID>0</InstanceID>");
                        sb.AppendLine("<Channel>Master</Channel>");
                        sb.AppendLine("<DesiredVolume>" + volume + "</DesiredVolume>");
                        sb.AppendLine("</u:SetVolume>");
                        sb.AppendLine("</s:Body>");
                        sb.AppendLine("</s:Envelope>");
                        var webClient = new System.Net.WebClient();
                        webClient.Headers.Add("SOAPACTION", "\"urn:schemas-upnp-org:service:RenderingControl:1#SetVolume\"");
                        webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
                        webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/rendercontrol1"), "POST", Encoding.UTF8.GetBytes(sb.ToString()));
                    }
                }
                catch { }
            });
        }
        /// <summary>
        /// 获取USb的列表
        /// </summary>
        public static List<MusicInfo> GetUsbList()
        public static List<MusicInfo> GetUsbList(A31MusicModel a31player)
        {
            var musicInfoList = new List<MusicInfo>();
            musicInfoList.Clear();
            var usbString = GetUSBPlayList();
            var usbString = GetUSBPlayList(a31player);
            if (usbString == null)
            {
                return musicInfoList;
@@ -489,7 +529,7 @@
        /// <summary>
        ///请求USB列表命令
        /// </summary>
        public static string GetUSBPlayList()
        public static string GetUSBPlayList(A31MusicModel a31player)
        {
            StringBuilder getPlayList = new StringBuilder();
@@ -507,7 +547,7 @@
            try
            {
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(getPlayList.ToString()));
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(getPlayList.ToString()));
                return System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length);
            }
            catch { }
@@ -549,7 +589,7 @@
        /// <summary>
        /// 获取当前播放的列表
        /// </summary>
        public static  string GetCurrentPlayList()
        public static  string GetCurrentPlayList(A31MusicModel a31player)
        {
            System.Text.StringBuilder getPlayList = new System.Text.StringBuilder();
            getPlayList.AppendLine("<?xml version=\"1.0\"encoding=\"utf-8\"?>");
@@ -566,7 +606,7 @@
            webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
            try
            {
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(getPlayList.ToString()));
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(getPlayList.ToString()));
                return System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length);
            }
            catch { }
@@ -577,7 +617,7 @@
        /// </summary>
        /// <param name="listName">列表名称</param>
        /// <param name="number">播放索引</param>
        public static void ListMusicPlay(string listName, object number)
        public static void ListMusicPlay(string listName, object number, A31MusicModel a31player)
        {
            System.Text.StringBuilder playstrings = new System.Text.StringBuilder();
            playstrings.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>");
@@ -594,7 +634,7 @@
            webClient.Headers.Add("CONTENT-TYPE", "text/xml; charset=\"utf-8\"");
            try
            {
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + A31MusicModel.Current.IPAddress + ":" + A31MusicModel.Current.Port + "/upnp/control/PlayQueue1"), "POST", Encoding.UTF8.GetBytes(playstrings.ToString()));
                byte[] recevieBytes = webClient.UploadData(new Uri("http://" + a31player.IPAddress + ":" + a31player.Port + "/upnp/control/PlayQueue1"), "POST", Encoding.UTF8.GetBytes(playstrings.ToString()));
                var s = System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length);
            }
            catch { }
@@ -663,7 +703,7 @@
            return check_sum;
        }
       public class A31QQSong
        public class A31QQSong
        {
            public string title = string.Empty;
            public string album = string.Empty;