using System; using System.Collections.Generic; using Shared; using HDL_ON.Entity; namespace HDL_ON.UI.Music { [System.Serializable] public class A31MusicModel { public static List A31MusicModelList = new List { }; static readonly string a31MusiceModeListFilePath = "A31MusiceModeListFilePath"; static A31MusicModel() { //Refresh(); } /// /// 音乐功能 /// public Function functionMusic = new Function(); /// ///保存当前音乐列表 /// public static void Save() { Common.FileUtlis.Files.WriteFileByBytes(a31MusiceModeListFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModelList))); } public static void Refresh() { if (null == Newtonsoft.Json.JsonConvert.DeserializeObject>(System.Text.Encoding.UTF8.GetString(Common.FileUtlis.Files.ReadFile(a31MusiceModeListFilePath)))) { A31MusicModelList = new List { }; //初始化房间列表 Save(); } else { A31MusicModelList = Newtonsoft.Json.JsonConvert.DeserializeObject>(System.Text.Encoding.UTF8.GetString(Common.FileUtlis.Files.ReadFile(a31MusiceModeListFilePath))); } if (A31MusicModelList == null) { A31MusicModelList = new List { }; } A31MusicModelList.RemoveAll((obj) => obj == null); } /// /// 上一次更新的时间 /// 记录数据反馈的时间(因为有时候网络差数据不回复,导致刷新当前播放音乐时间不正确) /// ((当前时间)DateTime.Now - (记录时间)LastDateTimeLastDateTime).TotalSeconds=误差时间(秒) /// public DateTime LastDateTime; /// /// 记录滑动音量条时间<用来处理音量跳动> /// public static DateTime ProgressDateTime = DateTime.MinValue; /// /// 音乐播放器ID /// public string UniqueDeviceName = string.Empty; public MusicInfo CurrentMusic = new MusicInfo(); /// /// 是否允许显示 /// public bool IsCanShow = true; /// /// 当前播放歌曲列表 /// public List CurrentPlayMusicInfoList = new List(); /// /// 喜爱音乐列表 /// public List LoveMusicInfoList = new List(); /// /// 所有【音乐列表】 /// public List AllMusicLists = new List(); /// /// 所有【音乐源】的列表 /// public List AllSourceGroupList = new List(); /// ///创建音乐文件列表 /// public List FileLists = new List(); /// /// 当前的A31音乐播放器 /// public static A31MusicModel Current; /// /// 指定列表名获取音乐列表 /// /// public List GetSongList(string listName) { var list = CurrentPlayMusicInfoList.Find((o) => o.group == listName); if (list == null) { return new List(); } return list.songs; } public Slaves Slave = new Slaves(); /// /// 判断是否是json数据 /// /// /// public static bool IsJson(string json) { try { if (null == Newtonsoft.Json.Linq.JObject.Parse(json)) { return false; } return true; } catch { return false; } } /// /// 自定义日志输出 /// public static void LogMusic(string str) { var time = DateTime.Now; Console.WriteLine(time + str); } } [System.Serializable] /// /// 自己创建的列表信息 /// public class FileListInfo { /// /// 列表名 /// public string ListName = string.Empty; /// /// 列表歌曲信息 /// public List MusicInfoList = new List(); } [System.Serializable] public class TidalMusicInfo : MusicInfo { public MusicInfo MusicInfo; public bool playurl = true; } [System.Serializable] public class Slaves { /// /// 从播放器值为0 /// public string slaves = "0"; public List slave_list = new List(); } [System.Serializable] public class Slave { public string name = string.Empty; public string mask = string.Empty; public string volume = string.Empty; public string mute = string.Empty; public string channel = string.Empty; public string ip = string.Empty; public string version = string.Empty; public string uuid = string.Empty; } [System.Serializable] /// /// 支持多个音乐 /// public class PalyerSongListInfo { /// /// 音乐sid /// public string sid = string.Empty; /// /// 音乐源 /// public string source = string.Empty; /// /// 列表信息 /// public List playlist = new List(); } [System.Serializable] /// /// 列表信息 /// public class SongList { /// /// 列表名 /// public string group = string.Empty; /// /// 自己定义的(用识别是那个音乐源的列表) /// public string source = string.Empty; /// /// 列表歌曲信息 /// public List songs = new List(); } [System.Serializable] public class SongInfo : MusicInfo { /// /// 歌曲名称 /// public string name = string.Empty; /// /// 大小 /// public string size = string.Empty; /// /// 时长 /// public string time = string.Empty; /// /// 歌曲地址 /// public string url = string.Empty; /// /// 类型<自己用> /// public string type = string.Empty; /// /// 列表名和group组名是一样的 /// public string listName = string.Empty; } [System.Serializable] /// /// 列表名列表 /// public class GroupList { /// ///设备sid /// public string sid = string.Empty; /// /// 音乐源 /// public string source = string.Empty; /// /// 列表名集合 /// public List groupList = new List(); } [System.Serializable] /// /// 列表名 /// public class ListName { /// /// 组名=列表名 /// public string group = string.Empty; } }