Ejemplo n.º 1
0
        private void InitializeInternal()
        {
            _audioClient  = AudioClient.FromMMDevice(Device);
            _outputFormat = SetupWaveFormat(_source.WaveFormat, _audioClient);

            long latency = _latency * 10000;

            if (!_eventSync)
            {
                _audioClient.Initialize(_shareMode, AudioClientStreamFlags.None, latency, 0, _outputFormat, Guid.Empty);
            }
            else                                                  //event sync
            {
                if (_shareMode == AudioClientShareMode.Exclusive) //exclusive
                {
                    _audioClient.Initialize(_shareMode, AudioClientStreamFlags.StreamFlags_EventCallback, latency, latency, _outputFormat, Guid.Empty);
                }
                else                 //shared
                {
                    _audioClient.Initialize(_shareMode, AudioClientStreamFlags.StreamFlags_EventCallback, 0, 0, _outputFormat, Guid.Empty);
                    _latency = (int)(_audioClient.StreamLatency / 10000);
                }

                _eventWaitHandle = new EventWaitHandle(false, EventResetMode.AutoReset);
                _audioClient.SetEventHandle(_eventWaitHandle.SafeWaitHandle.DangerousGetHandle());
            }

            _renderClient      = AudioRenderClient.FromAudioClient(_audioClient);
            _simpleAudioVolume = SimpleAudioVolume.FromAudioClient(_audioClient);
            _simpleAudioVolume.MasterVolume = 1f;
        }
Ejemplo n.º 2
0
 public void CanCreateSimpleAudioVolume()
 {
     using (var audioClient = Utils.CreateDefaultRenderClient())
     {
         audioClient.Initialize(AudioClientShareMode.Shared, AudioClientStreamFlags.None, 1000, 0, audioClient.GetMixFormat(), Guid.Empty);
         SimpleAudioVolume.FromAudioClient(audioClient).Dispose();
     }
 }
Ejemplo n.º 3
0
 public void CanMuteThroughSimpleAudioVolume()
 {
     using (var audioClient = Utils.CreateDefaultRenderClient())
     {
         audioClient.Initialize(AudioClientShareMode.Shared, AudioClientStreamFlags.None, 1000, 0, audioClient.GetMixFormat(), Guid.Empty);
         using (var volume = SimpleAudioVolume.FromAudioClient(audioClient))
         {
             var muted = volume.IsMuted;
             volume.IsMuted = !muted;
             volume.IsMuted = muted;
         }
     }
 }
Ejemplo n.º 4
0
 public void CanSetVolumeThroughSimpleAudioVolume()
 {
     using (var audioClient = Utils.CreateDefaultRenderClient())
     {
         audioClient.Initialize(AudioClientShareMode.Shared, AudioClientStreamFlags.None, 1000, 0, audioClient.GetMixFormat(), Guid.Empty);
         using (var volume = SimpleAudioVolume.FromAudioClient(audioClient))
         {
             for (float v = 0; v < 1.0; v += 0.01f)
             {
                 volume.MasterVolume = v;
             }
         }
     }
 }