Ejemplo n.º 1
0
 public void PassesThroughDataUnchangedAtVolume1()
 {
     var testProvider= new TestWaveProvider(new WaveFormat(44100,16,2));
     VolumeWaveProvider16 vwp = new VolumeWaveProvider16(testProvider);
     byte[] buffer = new byte[20];
     int bytesRead = vwp.Read(buffer, 0, buffer.Length);
     Assert.AreEqual(buffer.Length, bytesRead);
     Assert.AreEqual(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, buffer);
 }
Ejemplo n.º 2
0
 public void HalfVolumeWorks()
 {
     var testProvider = new TestWaveProvider(new WaveFormat(44100, 16, 2));
     testProvider.ConstValue = 100;
     VolumeWaveProvider16 vwp = new VolumeWaveProvider16(testProvider);
     vwp.Volume = 0.5f;
     byte[] buffer = new byte[4];
     int bytesRead = vwp.Read(buffer, 0, buffer.Length);
     Assert.AreEqual(new byte[] { 50, 50, 50, 50 }, buffer);
 }
Ejemplo n.º 3
0
        public void DoubleVolumeWorks()
        {
            var testProvider = new TestWaveProvider(new WaveFormat(44100, 16, 1));
            testProvider.ConstValue = 2;
            short sampleValue = BitConverter.ToInt16(new byte[] { 2, 2 }, 0);
            sampleValue = (short)(sampleValue * 2);

            VolumeWaveProvider16 vwp = new VolumeWaveProvider16(testProvider);
            vwp.Volume = 2f;
            byte[] buffer = new byte[2];
            int bytesRead = vwp.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(BitConverter.GetBytes(sampleValue), buffer);
        }
Ejemplo n.º 4
0
        private void StartPlay()
        {
            try
            {
                    var outFormat = new WaveFormat(48000, 16, 2);
                    using (var resampler = new MediaFoundationResampler(bufferedWaveProvider, outFormat))
                    {
                        resampler.ResamplerQuality = 60;
                        int blocksize = resampler.WaveFormat.AverageBytesPerSecond / 5;
                        byte[] buffer = new byte[blocksize];

                    VolumeWaveProvider16 vol = new VolumeWaveProvider16(resampler);
                    vol.Volume = 0.3f;

                    while (bufferedWaveProvider.BufferedBytes > bufferedWaveProvider.WaveFormat.AverageBytesPerSecond / 5 && playbackState != StreamingPlaybackState.Stopped)
                    {
                        vol.Read(buffer, 0, blocksize);
                        _client.Send(buffer, 0, blocksize);
                        _client.Wait();
                    }
                }
            }
            catch (Exception e2)
            {
                Console.Write(e2.ToString());
                return;
            }

            if(playbackState != StreamingPlaybackState.Stopped)
                playbackState = StreamingPlaybackState.Buffering;

            Console.WriteLine(String.Format("Gotta buffer"));          
        }