Beispiel #1
0
        public void CanPlayWithStreamingSourceVoice()
        {
            for (int i = 0; i < 20; i++)
            {
                using (var masteringVoice = _xaudio2.CreateMasteringVoice())
                    using (var source = GlobalTestConfig.TestWav2S())
                        using (var pool = new StreamingSourceVoiceListener())
                            using (var streamingSourceVoice = new StreamingSourceVoice(_xaudio2, source))
                            {
                                var stoppedEvent = new ManualResetEvent(false);
                                streamingSourceVoice.Stopped += (s, e) =>
                                                                stoppedEvent.Set();

                                streamingSourceVoice.Start();

                                pool.Add(streamingSourceVoice);

                                Debug.WriteLine("All queued.");

                                stoppedEvent.WaitOne();

                                pool.Remove(streamingSourceVoice);
                            }

                Debug.WriteLine("All removed.");
            }
        }
Beispiel #2
0
        public void CanPlayStereoToMonoSource()
        {
            //in order to fix workitem 3

            var source = GlobalTestConfig.TestMp3().ToStereo();

            Assert.AreEqual(2, source.WaveFormat.Channels);

            var monoSource = new StereoToMonoSource(source.ToSampleSource());

            Assert.AreEqual(1, monoSource.WaveFormat.Channels);

            ISoundOut soundOut;

            if (WasapiOut.IsSupportedOnCurrentPlatform)
            {
                soundOut = new WasapiOut();
            }
            else
            {
                soundOut = new DirectSoundOut();
            }

            soundOut.Initialize(monoSource.ToWaveSource(16));
            soundOut.Play();

            Thread.Sleep((int)Math.Min(source.GetMilliseconds(source.Length), 20000));

            soundOut.Dispose();
        }
 public void CanEncodeToMP3()
 {
     using (var source = GlobalTestConfig.TestWav2S())
     {
         using (var encoder = MediaFoundationEncoder.CreateMP3Encoder(source.WaveFormat, _targetfilename))
         {
             MediaFoundationEncoder.EncodeWholeSource(encoder, source);
         }
     }
 }
Beispiel #4
0
        public void CanCreateSourceReaderFromIOStream()
        {
            using (var stream = GlobalTestConfig.TestMp3AsStream())
                using (var comstream = new ComStream(stream))
                {
                    using (var byteStream = MediaFoundationCore.IStreamToByteStream(comstream))
                    {
                        Assert.IsNotNull(byteStream);

                        using (
                            var reader = MediaFoundationCore.CreateSourceReaderFromByteStream(byteStream.BasePtr,
                                                                                              IntPtr.Zero))
                        {
                            Assert.IsNotNull(reader);
                        }
                    }
                }
        }
Beispiel #5
0
        public void CanCreateSourceReaderFromUrl()
        {
            var filename = Path.ChangeExtension(Path.GetTempFileName(), "mp3");

            try
            {
                using (var stream = GlobalTestConfig.TestMp3AsStream())
                {
                    File.WriteAllBytes(filename, stream.ToArray());
                    using (var reader = MediaFoundationCore.CreateSourceReaderFromUrl(filename))
                    {
                        Assert.IsNotNull(reader);
                    }
                }
            }
            finally
            {
                File.Delete(filename);
            }
        }
Beispiel #6
0
 public void Initialize()
 {
     _source  = GlobalTestConfig.TestMp3();
     _xaudio2 = CreateXAudio2();
 }
Beispiel #7
0
 private IWaveSource GetWaveSource()
 {
     return(GlobalTestConfig.TestWav2S());
 }
Beispiel #8
0
 public static IWaveSource GetMockSource()
 {
     return(GlobalTestConfig.TestMp3());
 }