示例#1
0
        /// <summary>
        /// Converts Wav to MP3.
        /// </summary>
        /// <param name="inputFile">The input file.</param>
        /// <param name="outputPath">The output path.</param>
        /// <returns>
        /// Path of changed file
        /// </returns>
        public static string ConvertWavToMp3(string inputFile, string outputPath)
        {
            var reader = new WaveStream(inputFile);

            try
            {
                var config = new BE_CONFIG(reader.Format, (uint)(Math.Abs(BitRate - 0.0) < 0.1 ? DefaultBitRate : BitRate));
                var writer = new Mp3Writer(new FileStream(outputPath, FileMode.Create), reader.Format, config);

                try
                {
                    var buffer = new byte[writer.OptimalBufferSize];
                    int read;
                    while ((read = reader.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        writer.Write(buffer, 0, read);
                    }
                }
                finally
                {
                    writer.Close();
                }
            }
            finally
            {
                reader.Close();
            }

            return(outputPath);
        }
示例#2
0
        internal byte[] ConvertWavToMp3(Stream stream)
        {
            var inStr = new WaveStream(stream);

            try {
                var convertedStream = new MemoryStream();
                var writer          = new Mp3Writer(convertedStream, inStr.Format);
                try {
                    var buff = new byte[writer.OptimalBufferSize];
                    int read;
                    while ((read = inStr.Read(buff, 0, buff.Length)) > 0)
                    {
                        writer.Write(buff, 0, read);
                    }

                    convertedStream.Seek(0, SeekOrigin.Begin);
                    return(convertedStream.ToArray());
                } catch (Exception e) {
                    LoggerWrapper.LogTo(LoggerName.Errors).ErrorException(
                        "AudioConverter.ConvertWavToMp3 inner вылетело исключение {0}", e);
                } finally {
                    writer.Close();
                }
            } catch (Exception e) {
                LoggerWrapper.LogTo(LoggerName.Errors).ErrorException(
                    "AudioConverter.ConvertWavToMp3 outer вылетело исключение {0}", e);
            } finally {
                inStr.Close();
            }
            return(null);
        }
示例#3
0
        private static void wmaToMp3(string pathToFile, Stream outputStream, int sampleRate, int bitDepth, int numChannels)
        {
            var streamToWav = new WaveLib.WaveStream();

            wmaToWav(pathToFile, streamToWav.BaseStream, sampleRate, bitDepth, numChannels);

            streamToWav.ReadHeader();

            // wavStream gets closed in wavStreamToMP3();
            wavToMp3(streamToWav, outputStream, (uint)(sampleRate / 1000));
        }
        /// <summary>
        /// Converts Wav to MP3.
        /// </summary>
        /// <param name="inputFile">The input file.</param>
        /// <param name="outputPath">The output path.</param>
        /// <returns>
        /// Path of changed file
        /// </returns>
        public static string ConvertWavToMp3(string inputFile, string outputPath)
        {
            var reader = new WaveStream(inputFile);

            try
            {
                var config = new BE_CONFIG(reader.Format, (uint)(Math.Abs(BitRate - 0.0) < 0.1 ? DefaultBitRate : BitRate));
                var writer = new Mp3Writer(new FileStream(outputPath, FileMode.Create), reader.Format, config);

                try
                {
                    var buffer = new byte[writer.OptimalBufferSize];
                    int read;
                    while ((read = reader.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        writer.Write(buffer, 0, read);
                    }
                }
                finally
                {
                    writer.Close();
                }
            }
            finally
            {
                reader.Close();
            }

            return outputPath;
        }
示例#5
0
 public SteganoUtility(WaveLib.WaveStream sourceStream)
 {
     this.sourceStream   = sourceStream;
     this.bytesPerSample = sourceStream.Format.wBitsPerSample / 8;
 }
示例#6
0
 public SteganoUtility(WaveLib.WaveStream sourceStream, Stream destinationStream)
     : this(sourceStream){
     this.destinationStream = destinationStream;
 }
示例#7
0
        private static void wmaToMp3(string pathToFile, Stream outputStream, int sampleRate, int bitDepth, int numChannels)
        {
            var streamToWav = new WaveLib.WaveStream();
            wmaToWav(pathToFile, streamToWav.BaseStream, sampleRate, bitDepth, numChannels);

            streamToWav.ReadHeader();

            // wavStream gets closed in wavStreamToMP3();
            wavToMp3(streamToWav, outputStream, (uint)(sampleRate / 1000));
        }
 public SteganoUtility(WaveLib.WaveStream sourceStream)
 {
     this.sourceStream = sourceStream;
     this.bytesPerSample = sourceStream.Format.wBitsPerSample / 8;
 }