コード例 #1
0
        private void CreateReaderStream(Stream sourceStream, WaveStreamType waveStreamType)
        {
            switch (waveStreamType)
            {
            case WaveStreamType.Wav:
            {
                _readerStream = new WaveFileReader(sourceStream);
                if (_readerStream.WaveFormat.Encoding == WaveFormatEncoding.Pcm ||
                    _readerStream.WaveFormat.Encoding == WaveFormatEncoding.IeeeFloat)
                {
                    return;
                }
                _readerStream = WaveFormatConversionStream.CreatePcmStream(_readerStream);
                _readerStream = new BlockAlignReductionStream(_readerStream);
                break;
            }

            case WaveStreamType.Mp3:
                _readerStream = new Mp3FileReader(sourceStream);
                break;

            case WaveStreamType.Ogg:
                _readerStream = new VorbisWaveReader(sourceStream);
                break;

            case WaveStreamType.Aiff:
                _readerStream = new AiffFileReader(sourceStream);
                break;

            default:
                throw new NotSupportedException("Not support the specific stream type");
            }
        }
コード例 #2
0
        public MyAudioFileReader(Stream stream, WaveStreamType waveStreamType)
        {
            _lockObject = new object();
            CreateReaderStream(stream, waveStreamType);

            _sourceBytesPerSample = _readerStream.WaveFormat.BitsPerSample / 8 * _readerStream.WaveFormat.Channels;
            _sampleChannel        = new NAudio.Wave.SampleProviders.SampleChannel(_readerStream, false);
            _destBytesPerSample   = 4 * _sampleChannel.WaveFormat.Channels;
            _length = SourceToDest(_readerStream.Length);
        }
コード例 #3
0
 /// <summary>
 /// 构造一个波形图绘制类的实例
 /// </summary>
 public WavePainter()
 {
     mPngWidth    = Defines.PNG_WIDTH;
     mPngHeight   = Defines.PNG_HEIGHT;
     mSrcPath     = string.Empty;
     mBitmapPath  = string.Empty;
     mBitmapPath1 = string.Empty;
     mVolumnNum   = 1;
     mDrawBrush   = Brushes.Green;
     mSourceType  = WaveStreamType.LocalFile;
     mIsSaveFile  = true;
 }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of AudioFileReader
 /// </summary>
 /// <param name="buffer">The stream to open</param>
 /// <param name="waveStreamType">The type of source stream</param>
 public MyAudioFileReader(byte[] buffer, WaveStreamType waveStreamType)
     : this(new MemoryStream(buffer), waveStreamType)
 {
 }