private void Preview(string path) { if (!File.Exists(path)) { return; } try { var tfile = TagLib.File.Create(path, TagLib.ReadStyle.None); TagLib.Id3v1.Tag t = (TagLib.Id3v1.Tag)tfile.GetTag(TagLib.TagTypes.Id3v1); TagLib.Id3v2.Tag t2 = (TagLib.Id3v2.Tag)tfile.GetTag(TagLib.TagTypes.Id3v2); ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); GetAllStringProperties(t).ForEach(x => { x.Value = encoding[1].GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(x.Value)); x.Value_Preview = ConvertHelper.Convert(x.Value, encoding, ToChinese1); ID3v1_TagList.Add(x); }); GetAllStringProperties(t2).ForEach(x => { x.Value_Preview = ConvertHelper.Convert(x.Value, ToChinese2); ID3v2_TagList.Add(x); }); } catch (TagLib.UnsupportedFormatException) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); } catch (System.Exception) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); } }
private void Preview(string path) { if (!File.Exists(path)) { return; } try { var tfile = TagLib.File.Create(path, TagLib.ReadStyle.None); TagLib.Id3v1.Tag t = (TagLib.Id3v1.Tag)tfile.GetTag(TagLib.TagTypes.Id3v1); TagLib.Id3v2.Tag t2 = (TagLib.Id3v2.Tag)tfile.GetTag(TagLib.TagTypes.Id3v2); ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); GetAllStringProperties(t).ForEach(x => { x.Value = StringToUnicode.TryToConvertLatin1ToUnicode(x.Value, encoding[0]); x.Value_Preview = ConvertEncoding ? ConvertHelper.Convert(x.Value, encoding, ToChinese1) : ConvertHelper.Convert(x.Value, ToChinese1); ID3v1_TagList.Add(x); }); GetAllStringProperties(t2).ForEach(x => { if (tfile.TagTypesOnDisk.HasFlag(TagLib.TagTypes.Id3v2)) { x.Value = StringToUnicode.TryToConvertLatin1ToUnicode(x.Value, encoding2[0]); } else { var _ = ID3v1_TagList.Where(y => y.TagName == x.TagName).FirstOrDefault(); x.Value = _ != null ? _.Value_Preview : ""; } x.Value_Preview = ConvertHelper.Convert(x.Value, ToChinese2); ID3v2_TagList.Add(x); }); } catch (TagLib.UnsupportedFormatException) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); } catch (System.Exception) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); } }
private async void Preview(string path) { if (!File.Exists(path)) { return; } try { var tfile = TagLib.File.Create(path, TagLib.ReadStyle.None); TagLib.Id3v1.Tag t = (TagLib.Id3v1.Tag)tfile.GetTag(TagLib.TagTypes.Id3v1); TagLib.Id3v2.Tag t2 = (TagLib.Id3v2.Tag)tfile.GetTag(TagLib.TagTypes.Id3v2); ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); var TagList = GetAllStringProperties(t); TagList.ForEach(x => x.Value = StringToUnicode.TryToConvertLatin1ToUnicode(x.Value, encoding[0])); var Dic = TagList.ToDictionary(x => x.TagName, x => x.Value); var resoult = ConvertEncoding ? await ConvertHelper.ConvertDictionary(Dic, encoding, ToChinese1) : await ConvertHelper.ConvertDictionary(Dic, ToChinese1); TagList.ForEach(x => { x.Value_Preview = resoult[x.TagName]; ID3v1_TagList.Add(x); }); TagList = GetAllStringProperties(t2); Dic = TagList.ToDictionary(x => x.TagName, x => { if (tfile.TagTypesOnDisk.HasFlag(TagLib.TagTypes.Id3v2)) { return(StringToUnicode.TryToConvertLatin1ToUnicode(x.Value, encoding2[0])); } else { var _ = ID3v1_TagList.Where(y => y.TagName == x.TagName).FirstOrDefault(); return(_ != null ? _.Value_Preview : ""); } }); resoult = await ConvertHelper.ConvertDictionary(Dic, ToChinese2); TagList.ForEach(x => { x.Value_Preview = resoult[x.TagName]; ID3v2_TagList.Add(x); }); } catch (TagLib.UnsupportedFormatException) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "非音訊檔" }); } catch (FanhuajiException val) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line { TagName = "Error", Value = val.Message }); ID3v2_TagList.Add(new TagList_Line { TagName = "Error", Value = val.Message }); } catch (System.Exception) { ID3v1_TagList.Clear(); ID3v2_TagList.Clear(); ID3v1_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); ID3v2_TagList.Add(new TagList_Line() { TagName = "Error", Value = "未知" }); } }