void Start() { this.infos = JsonUtility.FromJson <MusicInfos>(ReadJson()); this.createMusicSelectionObjects(); source = this.gameObject.AddComponent <AudioSource>(); changeSE = (AudioClip)Resources.Load("change"); source.clip = changeSE; }
/// <summary> /// 添加一个歌曲信息到全局容器 /// </summary> /// <param name="infos">歌曲信息</param> public void InsertMusicInfo(MusicInfoModel info) { lock (MusicInfos) { int _lastIndex = MusicInfos.Count == 0 ? 0 : MusicInfos[MusicInfos.Count - 1].Index; info.Status = MusicInfoEnum.Ready; info.Index = _lastIndex++; MusicInfos.Add(info); } }
public void ClickTencentExecute(object parameter) { SearchOption.Tencent = (bool)parameter; var ini = new IniConfig("Config.ini"); ini.SetObject(SearchOption); ini.Save(); MusicInfos.Where(t => t.Origin == MusicSource.Tencent).ToList().ForEach(item => MusicInfos.Remove(item)); PlayerList.SetPreList(MusicInfos, "搜索"); }
/// <summary> /// 一个安全添加歌曲信息的方法,并且填充 UI /// </summary> /// <param name="infos">需要添加的歌曲信息</param> public void InsertMusicInfoAndFillListView(MusicInfoModel info) { lock (MusicInfos) { int _lastIndex = MusicInfos.Count == 0 ? 0 : MusicInfos[MusicInfos.Count - 1].Index; info.Status = MusicInfoEnum.Ready; info.Index = _lastIndex++; MusicInfos.Add(info); InsertItemToCenterListView(info); } }
public void ClickLocalMusicExecute() { ListId = string.Empty; MusicInfos.Clear(); var list = new LocalListManager().GetList(); list.ForEach(item => { var mim = new MusicInfoManager(); var music = mim.Find(item.Id); MusicInfos.Add(music.ToIMusic()); }); PlayerList.SetPreList(MusicInfos, "本地音乐"); DataGridAnimation(); }
public void DefaultListExecute() { ListId = string.Empty; var orm = new DefaultListManager(); var list = orm.GetList(); MusicInfos.Clear(); list.ForEach(item => { var mif = new MusicInfoManager(); var music = mif.Find(item.Id); MusicInfos.Add(music.ToIMusic()); }); PlayerList.SetPreList(MusicInfos, "默认列表"); DataGridAnimation(); }
/// <summary> /// 将当前音乐信息转换为 ConcurrentBag 容器 /// 注:会产生新的对象 /// </summary> /// <returns>转换完成的包含所有音乐信息的 ConcurrentBag 实例</returns> public ConcurrentBag <MusicInfoModel> GetConcurrentList() { ConcurrentBag <MusicInfoModel> _infos = new ConcurrentBag <MusicInfoModel>(); if (MusicInfos == null) { MusicInfos = new List <MusicInfoModel>(); } foreach (var _item in MusicInfos.OrderBy(z => z.Index)) { _infos.Add(_item); } return(_infos); }
/// <summary> /// 一个安全添加歌曲信息的方法,并且填充 UI /// </summary> /// <param name="infos">需要添加的歌曲信息集合</param> public void InsertMusicInfosAndFillListView(IEnumerable <MusicInfoModel> infos) { lock (MusicInfos) { int _lastIndex = MusicInfos.Count == 0 ? 0 : MusicInfos[MusicInfos.Count - 1].Index; UIContext.Center_ListViewNF_MusicList.BeginUpdate(); foreach (var _info in infos) { _info.Status = MusicInfoEnum.Ready; _info.Index = _lastIndex++; InsertItemToCenterListView(_info); } UIContext.Center_ListViewNF_MusicList.EndUpdate(); MusicInfos.AddRange(infos); } }
public async void SearchTask() { //UI SearchProgressVisibility = Visibility.Visible; DataVisibility = Visibility.Hidden; NoResultVisibility = Visibility.Hidden; //清空当前绑定数据 MusicInfos.Clear(); IMusic[] infos; try { //网易云 if (SearchOption.Netease) { infos = await Task.Run(() => CoreApi.SearchMusic(MusicSource.Netease, SearchContent)); InsertMusicInfo(infos, 1); } //酷狗 if (SearchOption.Kugou) { infos = await Task.Run(() => CoreApi.SearchMusic(MusicSource.Kugou, SearchContent)); InsertMusicInfo(infos, 2); } //QQ音乐 if (SearchOption.Tencent) { infos = await Task.Run(() => CoreApi.SearchMusic(MusicSource.Tencent, SearchContent)); InsertMusicInfo(infos, 3); } } catch (Exception e) { MessageBox.Show($"搜索失败!\n{e.Message}"); } PlayerList.SetPreList(MusicInfos, "搜索"); //UI SearchProgressVisibility = Visibility.Hidden; DataVisibility = MusicInfos.Count == 0 ? Visibility.Hidden : Visibility.Visible; NoResultVisibility = MusicInfos.Count == 0 ? Visibility.Visible : Visibility.Hidden; }
public void InsertMusicInfo(IMusic[] insertInfos, int index) { for (int i = 0; i < insertInfos.Length; i++) { if (insertInfos[i].Id == string.Empty) { continue; } if (i * index + index - 1 < MusicInfos.Count) { MusicInfos.Insert(i * index + index - 1, insertInfos[i]); } else { MusicInfos.Add(insertInfos[i]); } } }
public void ClickCustomList(object parameter) { ListId = string.Empty; string title = parameter.ToString(); var ls = new CustomListManager().GetList(); MusicInfos.Clear(); ls.ForEach(item => { if (item.Title == title) { var mim = new MusicInfoManager(); var music = mim.Find(item.Id); MusicInfos.Add(music.ToIMusic()); } }); PlayerList.SetPreList(MusicInfos, title); DataGridAnimation(); }
public void ClickPlatformList(object parameter) { string id = parameter.ToString(); ListId = id; var ls = new PlatformListManager().GetList(); MusicInfos.Clear(); ls.ForEach(item => { if (item.PlatformId == id) { var mim = new MusicInfoManager(); var music = mim.Find(item.MusicId); MusicInfos.Add(music.ToIMusic()); } }); PlayerList.SetPreList(MusicInfos, new PlatformInfoManager().Find(id).Title); DataGridAnimation(); }
public void RefreshShowList(string title) { //如果当前BasePage的DataGrid展示的是默认列表,进行刷新 if (PlayerList.PreListTitle != title) { return; } if (ListId == string.Empty) { if (title == "默认列表") { var orm = new DefaultListManager(); var list = orm.GetList(); MusicInfos.Clear(); list.ForEach(item => { var mif = new MusicInfoManager(); var music = mif.Find(item.Id); MusicInfos.Add(music.ToIMusic()); }); } else if (title == "本地音乐") { MusicInfos.Clear(); var list = new LocalListManager().GetList(); list.ForEach(item => { var mim = new MusicInfoManager(); var music = mim.Find(item.Id); MusicInfos.Add(music.ToIMusic()); }); } else { var ls = new CustomListManager().GetList(); MusicInfos.Clear(); ls.ForEach(item => { if (item.Title == title) { var mim = new MusicInfoManager(); var music = mim.Find(item.Id); MusicInfos.Add(music.ToIMusic()); } }); } } else { var ls = new PlatformListManager().GetList(); MusicInfos.Clear(); ls.ForEach(item => { if (item.PlatformId == ListId) { var mim = new MusicInfoManager(); var music = mim.Find(item.MusicId); MusicInfos.Add(music.ToIMusic()); } }); } }
public ApplicationContext(DbContextOptions options) : base(options) { Database.EnsureCreated(); MusicLength = MusicInfos.CountAsync().Result; }
/// <summary> /// Saves the <see cref="IMusicInfo"/>s in this <see cref="IMusicManager"/> to file. /// </summary> public void Save() { AudioManager.WriteValues(_fileName, _rootNodeName, MusicInfos.Select(x => new KeyValuePair <string, int>(x.Name, (int)x.ID))); }