using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
using Android.App;
|
using Android.Content;
|
using Android.OS;
|
using Android.Runtime;
|
using Android.Views;
|
using Android.Widget;
|
using Android.Provider;
|
|
namespace Shared
|
{
|
[System.Serializable]
|
public class MusicInfo
|
{
|
|
static MusicInfo ()
|
{
|
System.Threading.Tasks.Task.Run (() => {
|
var cursor = Application.Activity.ContentResolver.Query (MediaStore.Audio.Media.ExternalContentUri, new []
|
{
|
MediaStore.Audio.AudioColumns.Id,//歌曲ID
|
MediaStore.Audio.AudioColumns.Title,//歌曲名称
|
MediaStore.Audio.AudioColumns.Artist,//歌曲的歌手名
|
MediaStore.Audio.AudioColumns.Album,// 歌曲的专辑名
|
MediaStore.Audio.AudioColumns.AlbumId,//歌曲专辑ID
|
MediaStore.Audio.AudioColumns.Data,//歌曲文件的路径
|
MediaStore.Audio.AudioColumns.Size,//歌曲的总播放时长
|
MediaStore.Audio.AudioColumns.Duration,//歌曲的总播放时长
|
}, null, null, null);
|
|
|
for (cursor.MoveToFirst (); !cursor.IsAfterLast; cursor.MoveToNext ()) {
|
|
musicInfoList.Add (new MusicInfo {
|
SourceType = "Local",
|
ID = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Id))?.Trim ('<').Trim('>').Replace ("&", ""),
|
Title = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Title))?.Trim('<').Trim('>').Replace ("&", ""),
|
Artist = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Artist))?.Trim('<').Trim('>').Replace ("&", ""),
|
Album = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Album))?.Trim('<').Trim('>').Replace ("&", ""),
|
AlbumId = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.AlbumId))?.Trim('<').Trim('>').Replace ("&", ""),
|
Data = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Data))?.Replace ("&", ""),
|
Size = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Size))?.Trim('<').Trim('>').Replace ("&", ""),
|
Duration = cursor.GetString (cursor.GetColumnIndex (MediaStore.Audio.AudioColumns.Duration))?.Trim('<').Trim('>').Replace ("&", ""),
|
});
|
|
if (500 <= musicInfoList.Count) {
|
break;
|
}
|
}
|
cursor.Close();
|
});
|
}
|
|
/// <summary>
|
/// 歌曲名称
|
/// </summary>
|
public string Title;
|
/// <summary>
|
/// 歌曲的歌手名
|
/// </summary>
|
public string Artist;
|
/// <summary>
|
/// 歌曲的专辑名
|
/// </summary>
|
public string Album;
|
/// <summary>
|
/// 歌曲专辑ID
|
/// </summary>
|
public string AlbumId;
|
/// <summary>
|
/// 歌曲文件的路径
|
/// </summary>
|
public string Data;
|
/// <summary>
|
/// 歌曲的总播放时长
|
/// </summary>
|
public string Size;
|
/// <summary>
|
/// 歌曲的总播放时长
|
/// </summary>
|
public string Duration;
|
/// <summary>
|
/// 音乐ID
|
/// </summary>
|
public string ID;
|
/// <summary>
|
/// 网络地址
|
/// </summary>
|
public string URL;
|
/// <summary>
|
/// 文件名
|
/// </summary>
|
public string filename;
|
/// <summary>
|
/// DLNA列表名
|
/// </summary>
|
public string dlnalistName;
|
/// <summary>
|
/// 图片
|
/// </summary>
|
public string Image;
|
/// <summary>
|
/// 电台类型
|
/// </summary>
|
public string Cntype;
|
/// <summary>
|
/// 电台类型
|
/// </summary>
|
public string Cnkey;
|
/// <summary>
|
/// 是否是目录
|
/// </summary>
|
public bool IsDirectory = true;
|
|
public string SourceType;
|
public string SourceName;
|
|
readonly static List<MusicInfo> musicInfoList = new List<MusicInfo> ();
|
/// <summary>
|
/// 获取所有的
|
/// </summary>
|
public static List<MusicInfo> MusicInfoList {
|
get {
|
return musicInfoList;
|
}
|
}
|
public object Tag;
|
}
|
}
|