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