//factChunk ReadFactHeader() - 2004 July 28
        //Again, not much to say.
        public factChunk ReadFactHeader()
        {
            fact = new factChunk();

            fact.sChunkID     = "fact";
            fact.dwChunkSize  = reader.ReadUInt32();
            fact.dwNumSamples = reader.ReadUInt32();
            return(fact);
        }
예제 #2
0
        public WaveFile(string filename)
        {
            reader            = new WaveFileReader(filename);
            maindata          = reader.ReadMainFileHeader();
            maindata.FileName = filename;
            long   chunkSize = 0;
            string chunkName = null;

            while (chunkName != "data" && reader.GetPosition() < (long)maindata.dwFileLength && reader.GetPosition() + chunkSize < maindata.dwFileLength)
            {
                chunkName = reader.GetChunkName();
                switch (chunkName)
                {
                case "fmt ":

                    format    = reader.ReadFormatHeader();
                    chunkSize = format.dwChunkSize;
                    break;

                case "fact":

                    fact      = reader.ReadFactHeader();
                    chunkSize = fact.dwChunkSize;
                    break;

                case "data":

                    data      = reader.ReadDataHeader();
                    chunkSize = data.dwChunkSize;
                    break;

                default:
                    //This provides the required skipping of unsupported chunks.
                    // reader.AdvanceToNext();

                    chunkSize = 0;
                    break;
                }
            }
        }