コード例 #1
0
 public void ReadID3v2(string file)
 {
     // read id3 stuff
     id3v2 = new ID3V2(file);
     id3v2.Read();
     this.hasID3v2 = id3v2.HasTag;
 }
コード例 #2
0
ファイル: Decoder.cs プロジェクト: stlearn/MP3_Decoder
        /// <summary>
        /// 控制整个解码流程的主函数
        /// </summary>
        /// <returns></returns>
        public bool Start()
        {
            //文件头
            Header mp3_header = new Header(input);
            ID3V2  id3V2      = mp3_header.getID3V2();


            Data_Frame_Header_Info headerInfo = new Data_Frame_Header_Info();

            //设置显示框
            if (headerInfo.track_mode == 3)
            {
                _win.Channels.Text = "1";
                _pcmDatas.Channels = 1;
            }
            else
            {
                _win.Channels.Text = "2";
                _pcmDatas.Channels = 2;
            }

            int frequency = 0;

            while (headerInfo != null)
            {
                //数据帧头
                Data_Frame_Header df = new Data_Frame_Header(input);
                headerInfo = df.getHeaderInfo();

                if (headerInfo != null && headerInfo.frequency > frequency)
                {
                    frequency = headerInfo.frequency;
                }

                //文件找不到数据帧或者频率或比特率有问题
                if ((headerInfo == null && Data_Frame_Header.begin_of_file) || (headerInfo != null && headerInfo.frequency == 1) || (headerInfo != null && headerInfo.bitrate == 0))
                {
                    return(false);
                }


                if (headerInfo != null)
                {
                    //获取一帧的数据
                    byte[] besides_header = new byte[headerInfo.frame_length - 4];
                    input.Read(besides_header, 0, besides_header.Length);

                    //进行这一帧的解码
                    Decode decode = new Decode(headerInfo, besides_header, input, _filename, write);
                    decode.Start();
                }
            }
            _win.SampleMode.Text = $"{frequency}Hz";
            _pcmDatas.Frequency  = frequency;
            return(true);
        }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of <see cref="Mp3Tag"/> and read file.
 /// </summary>
 /// <param name="filename">The file to open for reading.</param>
 public Mp3Tag(string filename)
 {
     this._filename = filename;
     _id3v2         = new ID3V2(filename);
 }