| | |
| | | using System.Text; |
| | | using HDL_ON.DAL.Server; |
| | | using HDL_ON.Entity; |
| | | using Newtonsoft.Json.Linq; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI.Music |
| | | { |
| | | public class SendMethod |
| | | { |
| | | private static SendMethod sMethod = null; |
| | | public static SendMethod mMethod |
| | | private static SendMethod s_Current = null; |
| | | public static SendMethod Current |
| | | { |
| | | get |
| | | { |
| | | if (sMethod == null) |
| | | if (s_Current == null) |
| | | { |
| | | sMethod = new SendMethod(); |
| | | s_Current = new SendMethod(); |
| | | } |
| | | return sMethod; |
| | | return s_Current; |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendWriteCommand(function, dic); |
| | | DriverLayer.Control.Ins.SendWriteCommand(function, dic, false, 0); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | //记录歌曲播放时间 |
| | | private int songPlayTime = -1; |
| | | |
| | | /// <summary> |
| | | /// 获取设备最新的状态 |
| | | /// </summary> |
| | |
| | | { |
| | | //RefreshDeviceStatus(functionIds); |
| | | //a31Music.LastDateTime = DateTime.Now; |
| | | ///从缓存里面查找音乐播放器对象<缓存数据收到推送过来的状态会更新缓存数据> |
| | | ///从缓存里面查找音乐播放器对象<收到推送过来的状态会更新缓存数据> |
| | | var allLocalFuntion = FunctionList.List.GetDeviceFunctionList(); |
| | | var localFunction = allLocalFuntion.Find((obj) => obj.sid == sid); |
| | | if (localFunction == null) |
| | |
| | | } |
| | | ///更新的数据 |
| | | a31Music.functionMusic = localFunction; |
| | | if (int.Parse(A31MusicModel.Current.functionMusic.GetAttrState(UI2.FuntionControlView.Music.KeyProperty.playing_time)) != songPlayTime) |
| | | { |
| | | ///歌曲记录时间和当前时间不一样,立即更新数据反馈时间 |
| | | a31Music.LastDateTime = DateTime.Now; |
| | | ///歌曲记录时间和当前时间不一样,立即更新歌曲播放时间 |
| | | songPlayTime = int.Parse(A31MusicModel.Current.functionMusic.GetAttrState(UI2.FuntionControlView.Music.KeyProperty.playing_time)); |
| | | } |
| | | |
| | | } |
| | | catch { } |
| | |
| | | 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); |
| | | var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus, "刷新设备状态"); |
| | | if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "") |
| | | { |
| | | return; |
| | | } |
| | | |
| | | } |
| | | catch { } |
| | | } |
| | |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("deviceIds", new List<string> { music.deviceId }); |
| | | var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList); |
| | | var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList, "获取音乐列表"); |
| | | if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "") |
| | | { |
| | | return; |
| | |
| | | var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyListInfo>>(str); |
| | | if (palyLists == null) |
| | | { |
| | | palyLists = new List<PalyListInfo>(); |
| | | palyLists =new List<PalyListInfo>(); |
| | | } |
| | | if (palyLists.Count > 0) |
| | | { |
| | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取列表名列表 |
| | | /// </summary> |
| | | /// <param name="music"></param> |
| | | /// <returns></returns> |
| | | public List<GroupList> GetListName(Function music) |
| | | { |
| | | try |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); |
| | | d.Add("deviceIds", new List<string> { music.deviceId }); |
| | | var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupList, "获取列表名列表"); |
| | | if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "") |
| | | { |
| | | return new List<GroupList>(); |
| | | } |
| | | //数据返序列化为Function对象 |
| | | var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data); |
| | | var groupLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupList>>(str); |
| | | if (groupLists == null) |
| | | { |
| | | groupLists = new List<GroupList>(); |
| | | } |
| | | return groupLists; |
| | | } |
| | | catch |
| | | { |
| | | return new List<GroupList>(); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 获取列表音乐 |
| | | /// </summary> |
| | | /// <param name="music"></param> |
| | | /// <param name="listName">列表名</param> |
| | | /// <returns></returns> |
| | | public PalyList GetListMusic(Function music, string listName) |
| | | { |
| | | try |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | Dictionary<string, object> d1 = new Dictionary<string, object>(); |
| | | Dictionary<string, object> d2 = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId); |
| | | d2.Add("group", listName); |
| | | d1.Add("sid", music.sid); |
| | | d1.Add("groupList", new List<Dictionary<string, object>> { d2 }); |
| | | d.Add("sidGroups", new List<Dictionary<string, object>> { d1 }); |
| | | |
| | | var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupPlayerList, "获取列表音乐"); |
| | | if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "") |
| | | { |
| | | return new PalyList(); |
| | | } |
| | | //数据返序列化为Function对象 |
| | | var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data); |
| | | var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyListInfo>>(str); |
| | | if (palyLists == null) |
| | | { |
| | | palyLists = new List<PalyListInfo>(); |
| | | } |
| | | |
| | | if (palyLists.Count == 0) |
| | | { |
| | | return new PalyList(); |
| | | } |
| | | //默认第一个列表里面第一个音乐列表 |
| | | return palyLists[0].playlist.Count > 0 ? palyLists[0].playlist[0] : new PalyList(); |
| | | |
| | | } |
| | | catch |
| | | { |
| | | return new PalyList(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | ///请求服务器(与住宅有关:例如;homeId) |
| | | /// </summary> |
| | | /// <param name="o">发送数据</param> |
| | | /// <param name="api_Url">请求地址(不是绝对地址)</param> |
| | | /// <param name="tag">标记->描述接口(自定义)</param> |
| | | /// <returns></returns> |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 5) |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 5) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | | return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); |
| | | |
| | | JObject jobject = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(o)); |
| | | return UI2.Intelligence.Automation.Send.Current.RequestServerhomeId(jobject, api_Url, tag, mTimeout); |
| | | } |
| | | } |
| | | } |