示例#1
0
        public MemoryStream Decode(MemoryStream memoryStream)
        {
            byte[] buffer320 = new byte[320];
            byte[] buffer32 = new byte[32];
            MemoryStream amr2rawData = new MemoryStream();

            AMR_Decoder dec = new AMR_Decoder();
            int start = 6; //skip header of amr file
            int end = Convert.ToInt32(memoryStream.Length);
            memoryStream.Position = start;
            while (true)
            {
                memoryStream.Read(buffer32, 0, 32);
                dec.Decode(buffer32, 0, buffer320, 0);
                amr2rawData.Write(buffer320, 0, buffer320.Length);
                start += 32;
                if (start >= end) break;
            }
            return amr2rawData;
        }
示例#2
0
        public MemoryStream Decode(MemoryStream memoryStream)
        {
            byte[]       buffer320   = new byte[320];
            byte[]       buffer32    = new byte[32];
            MemoryStream amr2rawData = new MemoryStream();

            AMR_Decoder dec   = new AMR_Decoder();
            int         start = 6; //skip header of amr file
            int         end   = Convert.ToInt32(memoryStream.Length);

            memoryStream.Position = start;
            while (true)
            {
                memoryStream.Read(buffer32, 0, 32);
                dec.Decode(buffer32, 0, buffer320, 0);
                amr2rawData.Write(buffer320, 0, buffer320.Length);
                start += 32;
                if (start >= end)
                {
                    break;
                }
            }
            return(amr2rawData);
        }