Example #1
0
        private void CaptureAudioStateMonitor_SoundLevelChanged(AudioStateMonitor sender, object args)
        {
            switch (sender.SoundLevel)
            {
            case SoundLevel.Full:
                if (capturingStoppedForAudioState)
                {
                    StartAudioCapture();
                    capturingStoppedForAudioState = false;
                }
                break;

            case SoundLevel.Muted:
                if (isCapturingAudio)
                {
                    StopAudioCapture();
                    capturingStoppedForAudioState = true;
                }
                break;

            case SoundLevel.Low:
                // This should never happen for capture
                Debug.WriteLine("Unexpected audio state.");
                break;
            }
        }
Example #2
0
        //</SnippetDeviceIdCategoryVars>
        private void RegisterAudioStateMonitorDeviceIdCategory()
        {
            //<SnippetSoundLevelDeviceIdCategory>
            string deviceId = Windows.Media.Devices.MediaDevice.GetDefaultAudioCaptureId(Windows.Media.Devices.AudioDeviceRole.Communications);

            gameChatAudioStateMonitor = AudioStateMonitor.CreateForCaptureMonitoringWithCategoryAndDeviceId(MediaCategory.GameChat, deviceId);
            gameChatAudioStateMonitor.SoundLevelChanged += GameChatSoundLevelChanged;
            //</SnippetSoundLevelDeviceIdCategory>
        }
Example #3
0
        //</SnippetAudioStateVars>


        void RegisterAudioPolicyHandlers()
        {
            //<SnippetRegisterAudioStateMonitor>
            captureAudioStateMonitor = AudioStateMonitor.CreateForCaptureMonitoring();
            captureAudioStateMonitor.SoundLevelChanged += CaptureAudioStateMonitor_SoundLevelChanged;;

            renderAudioStateMonitor = AudioStateMonitor.CreateForRenderMonitoring();
            renderAudioStateMonitor.SoundLevelChanged += RenderAudioStateMonitor_SoundLevelChanged;;
            //</SnippetRegisterAudioStateMonitor>
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            await CreateAudioGraph();

            string deviceId = Windows.Media.Devices.MediaDevice.GetDefaultAudioCaptureId(Windows.Media.Devices.AudioDeviceRole.Communications);

            gameChatAudioStateMonitor = AudioStateMonitor.CreateForCaptureMonitoringWithCategoryAndDeviceId(MediaCategory.Other, deviceId);
            gameChatAudioStateMonitor.SoundLevelChanged += OnSoundLevelChanged;

            LogPath.Text = Logging.LoggingPath;
        }
Example #5
0
 //<SnippetRenderSoundLevelChanged>
 private void RenderAudioStateMonitor_SoundLevelChanged(AudioStateMonitor sender, object args)
 {
     if ((sender.SoundLevel == SoundLevel.Full) ||
         (sender.SoundLevel == SoundLevel.Low && !isPodcast))
     {
         mediaPlayer.Play();
     }
     else if ((sender.SoundLevel == SoundLevel.Muted) ||
              (sender.SoundLevel == SoundLevel.Low && isPodcast))
     {
         // Pause playback if we’re muted or if we’re playing a podcast and are ducked
         mediaPlayer.Pause();
     }
 }
Example #6
0
        //<SnippetGameChatSoundLevelChanged>
        private void GameChatSoundLevelChanged(AudioStateMonitor sender, object args)
        {
            switch (sender.SoundLevel)
            {
            case SoundLevel.Full:
                StartAudioCapture();
                break;

            case SoundLevel.Muted:
                StopAudioCapture();
                break;

            case SoundLevel.Low:
                // Audio capture should never be "ducked", only muted or full volume.
                Debug.WriteLine("Unexpected audio state change.");
                break;
            }
        }
        private void OnSoundLevelChanged(AudioStateMonitor sender, object args)
        {
            switch (sender.SoundLevel)
            {
            case SoundLevel.Full:
                Logging.SingleInstance.LogMessage("Microphone Volume is full");
                break;

            case SoundLevel.Muted:
                Logging.SingleInstance.LogMessage("Microphone Volume is muted");
                break;

            case SoundLevel.Low:
                // Audio capture should never be "ducked", only muted or full volume.
                Logging.SingleInstance.LogMessage("Microphone Volume is low");
                break;
            }
        }