Exemplo n.º 1
0
        private static WaveStream CreateInputStream(string fileName)
        {
            WaveChannel32 inputStream;
            WaveStream    readerStream = null;

            if (fileName.EndsWith(".wav"))
            {
                readerStream = new WaveFileReader(fileName);
            }
            else if (fileName.EndsWith(".wma"))
            {
//                readerStream = new WMAFileReader2(fileName);

                MemoryStream memoryStream = new MemoryStream();
                using (FileStream infile = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                {
                    while (infile.Position < infile.Length)
                    {
                        byte data = (byte)infile.ReadByte();
                        memoryStream.WriteByte(data);
                    }
                }
                memoryStream.Position = 0;
                readerStream          = new WMAFileReader2(memoryStream);
            }
            else
            {
                throw new InvalidOperationException("Unsupported extension");
            }


            // Provide PCM conversion if needed
            if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm)
            {
                readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream);
                readerStream = new BlockAlignReductionStream(readerStream);
            }

            // Provide conversion to 16 bits if needed
            if (readerStream.WaveFormat.BitsPerSample != 16)
            {
                var format = new WaveFormat(readerStream.WaveFormat.SampleRate,
                                            16, readerStream.WaveFormat.Channels);
                readerStream = new WaveFormatConversionStream(format, readerStream);
            }

            inputStream = new WaveChannel32(readerStream);

            return(inputStream);
        }
Exemplo n.º 2
0
        private static WaveStream CreateInputStream(string fileName)
        {
            WaveChannel32 inputStream;
            WaveStream readerStream = null;

            if (fileName.EndsWith(".wav"))
            {
                readerStream = new WaveFileReader(fileName);
            }
            else if (fileName.EndsWith(".wma"))
            {
//                readerStream = new WMAFileReader2(fileName);

                MemoryStream memoryStream = new MemoryStream();
                using ( FileStream infile = new FileStream(fileName, FileMode.Open, FileAccess.Read) )
                {
                    while (infile.Position < infile.Length)
                    {
                        byte data = (byte) infile.ReadByte();
                        memoryStream.WriteByte( data );
                    }
                }
                memoryStream.Position = 0;
                readerStream = new WMAFileReader2(memoryStream);
            }
            else
            {
                throw new InvalidOperationException("Unsupported extension");
            }


            // Provide PCM conversion if needed
            if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm)
            {
                readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream);
                readerStream = new BlockAlignReductionStream(readerStream);
            }

            // Provide conversion to 16 bits if needed
            if (readerStream.WaveFormat.BitsPerSample != 16)
            {
                var format = new WaveFormat(readerStream.WaveFormat.SampleRate,
                16, readerStream.WaveFormat.Channels);
                readerStream = new WaveFormatConversionStream(format, readerStream);
            }

            inputStream = new WaveChannel32(readerStream);

            return inputStream;
        }