• 大小: 91KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-09-10
  • 语言: C#
  • 标签: C#源码  WinForm  

资源简介

C#开发的.kgtemp(KuG ou缓存文件)转换.mp3文件的源代码,仅用于学习交流,勿用于商业用途。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;

namespace Kgtemp_Converter
{

    public class ID3Info
    {
        public string title { get; set; }
        public string Artist { get; set; }
        public string Album { get; set; }
        public string Year { get; set; }
        public string Comment { get; set; }
    }

    public class ID3Helper

    {
        #region MP3信息结构
        /// 
        /// MP3信息结构
        /// 

        public struct Mp3Info
        {
            public string identify; //TAG,三个字节
            public string title; //歌曲名30个字节
            public string Artist; //歌手名30个字节
            public string Album; //所属唱片30个字节
            public string Year; //年4个字符
            public string Comment; //注释28个字节
            public char reserved1; //保留位,一个字节
            public char reserved2; //保留位,一个字节
            public char reserved3; //保留位,一个字节
        }
        #endregion

        public static Encoding DetectEncoding(byte encoding = 0x00)
        {
            Encoding tagEncoding = null;
            // Checks to see what encoding type it is.
            switch (encoding)
            {
                case 0x00: tagEncoding = Encoding.GetEncoding(“ISO-8859-1“); break;
                case 0x01: tagEncoding = Encoding.GetEncoding(“UTF-16“); break;
                case 0x02: tagEncoding = Encoding.GetEncoding(“UTF-16BE“); break;
                case 0x03: tagEncoding = Encoding.UTF8; break;
                default: throw new Exception(“Invalid encoding type of ID3v2.“);
            }
            return tagEncoding;
        }

        public static Mp3Info GetMp3Info(string FileName)
        {
            //打开文件
            FileStream fs = new FileStream(FileName FileMode.Open FileAccess.Read);

            Encoding FileEncoding = Encoding.GetEncoding(“GBK“);
            //获取MP3文件最后128个字节ID3信息保存于此如果获取失败则返回null
            const int seekPos = 128;
            fs.Seek(-seekPos SeekOrigin.End); //从文件尾部开始往回seek到128字节处
            int rl = 0;
            byte[] Last128 = new byte[seekPos];
            rl = fs.Read(Last128 0 seekPos); //将最后的128个字节读出来放入byte[]中
            fs.Seek(0 SeekOrigin.Begin);  //恢复Seek位置
            //关闭文件
            fs.Close();

            //将mp3最后的128个字节格式化为Mp3Info
            Mp3Info myMp3Info = FormatMp3Info(Last128 FileEncoding);
            //返回
            return myMp3Info;
        }

        #region 将mp3最后的128个字节格式化为Mp3Info

        /// 
        /// 将mp3最后的128个字节格式化为Mp3Info
        /// 

        /// 从MP3文件中截取的二进制信息
        /// 返回一个Mp3Info结构
        private static Mp3Info FormatMp3Info(byte[] Info System.Text.Encoding Encoding)
        {
            Mp3Info myMp3Info = new Mp3Info();
            string str = null;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      28160  2018-10-14 14:10  Kgtemp_Convert_Mp3\bin\Debug\Kgtemp_Convert_Mp3.exe

     文件      38400  2018-10-14 14:10  Kgtemp_Convert_Mp3\bin\Debug\Kgtemp_Convert_Mp3.pdb

     文件      11600  2018-10-14 14:10  Kgtemp_Convert_Mp3\bin\Debug\Kgtemp_Convert_Mp3.vshost.exe

     文件       6913  2018-04-15 18:56  Kgtemp_Convert_Mp3\ID3Helper.cs

     文件      14162  2018-10-14 14:10  Kgtemp_Convert_Mp3\Kgtemp_Converter.cs

     文件      13613  2018-10-14 14:08  Kgtemp_Convert_Mp3\Kgtemp_Converter.Designer.cs

     文件      13957  2018-10-14 14:08  Kgtemp_Convert_Mp3\Kgtemp_Converter.resx

     文件       3790  2018-04-15 18:57  Kgtemp_Convert_Mp3\Kgtemp_Convert_Mp3.csproj

     文件       5420  2018-04-15 18:48  Kgtemp_Convert_Mp3\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       6395  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件       1571  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.csproj.FileListAbsolute.txt

     文件        986  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.csproj.GenerateResource.Cache

     文件      28160  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.exe

     文件       5788  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.Kgtemp_Converter.resources

     文件      38400  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.pdb

     文件        180  2018-04-20 00:40  Kgtemp_Convert_Mp3\obj\x86\Debug\Kgtemp_Convert_Mp3.Properties.Resources.resources

     文件       5420  2018-04-19 19:53  Kgtemp_Convert_Mp3\obj\x86\Release\DesignTimeResolveAssemblyReferences.cache

     文件       6399  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\DesignTimeResolveAssemblyReferencesInput.cache

     文件       1599  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.csproj.FileListAbsolute.txt

     文件        986  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.csproj.GenerateResource.Cache

     文件      27136  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.exe

     文件       5788  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.Kgtemp_Converter.resources

     文件      36352  2018-10-14 14:10  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.pdb

     文件        180  2018-04-20 00:40  Kgtemp_Convert_Mp3\obj\x86\Release\Kgtemp_Convert_Mp3.Properties.Resources.resources

     文件        510  2018-04-15 13:56  Kgtemp_Convert_Mp3\Program.cs

     文件       1368  2018-04-15 13:34  Kgtemp_Convert_Mp3\Properties\AssemblyInfo.cs

     文件       2884  2018-04-15 13:34  Kgtemp_Convert_Mp3\Properties\Resources.Designer.cs

     文件       5612  2018-04-15 13:34  Kgtemp_Convert_Mp3\Properties\Resources.resx

     文件       1101  2018-04-15 13:34  Kgtemp_Convert_Mp3\Properties\Settings.Designer.cs

     文件        249  2018-04-15 13:34  Kgtemp_Convert_Mp3\Properties\Settings.settings

............此处省略16个文件信息

评论

共有 条评论