private void PreviewAudio(object sender, RoutedEventArgs e)
        {
            if (_audioPreview == null)
            {
                //get device
                try
                {
                    var output = outputDeviceList[Speakers.SelectedIndex];

                    //save settings
                    _appConfig.AudioInputDeviceId  = ((WaveInCapabilities)((AudioDeviceListItem)Mic.SelectedItem).Value).NameGuid.ToString();
                    _appConfig.AudioOutputDeviceId = output.ID;

                    _audioPreview = new AudioPreview();

                    _audioPreview.StartPreview(Mic.SelectedIndex, output);
                    _audioPreview.SpeakerBoost = (float)SpeakerBoost.Value;
                    _audioPreview.MicBoost     = (float)MicrophoneBoost.Value;
                    Preview.Content            = "Stop Preview";
                }
                catch (Exception ex)
                {
                    Logger.Error(ex, "Unable to preview audio - likely output device error - Pick another. Error:" + ex.Message);
                }
            }
            else
            {
                Preview.Content = "Audio Preview";
                _audioPreview.StopEncoding();
                _audioPreview = null;
            }
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            AppConfiguration.Instance.ClientX = this.Left;
            AppConfiguration.Instance.ClientY = this.Top;

            //save window position
            base.OnClosing(e);

            //stop timer
            _updateTimer.Stop();

            Stop();

            if (_audioPreview != null)
            {
                _audioPreview.StopEncoding();
                _audioPreview = null;
            }

            _radioOverlayWindow?.Close();
            _radioOverlayWindow = null;

            _dcsAutoConnectListener.Stop();
            _dcsAutoConnectListener = null;
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            _settings.SetPositionSetting(SettingsKeys.ClientX, Left);
            _settings.SetPositionSetting(SettingsKeys.ClientY, Top);

            //save window position
            base.OnClosing(e);

            //stop timer
            _updateTimer.Stop();

            Stop();

            if (_audioPreview != null)
            {
                _audioPreview.StopEncoding();
                _audioPreview = null;
            }

            _radioOverlayWindow?.Close();
            _radioOverlayWindow = null;

            _awacsRadioOverlay?.Close();
            _awacsRadioOverlay = null;

            _dcsAutoConnectListener.Stop();
            _dcsAutoConnectListener = null;
        }
Exemplo n.º 4
0
        static bool DestroyIfNecessary(AudioPreview audioPreview)
        {
            AudioSource audioSource = audioPreview.GetComponent <AudioSource>();

            if (!audioSource || !audioSource.isPlaying)
            {
                Object.DestroyImmediate(audioPreview.gameObject);
                return(true);
            }
            return(false);
        }
Exemplo n.º 5
0
 private void GetClipCallback(string audioUri, Error error)
 {
     if (error)
     {
         Debug.LogError("Resemble Error : " + error.code + " - " + error.message);
     }
     else
     {
         Resemble_Window.preview = new AudioPreview(audioUri);
         drawProgressBar         = true;
     }
 }
Exemplo n.º 6
0
 private void PreviewAudio(object sender, RoutedEventArgs e)
 {
     if (_audioPreview == null)
     {
         _audioPreview = new AudioPreview();
         _audioPreview.StartPreview(Mic.SelectedIndex, Speakers.SelectedIndex);
         _audioPreview.Volume.Volume = (float)MicrophoneBoost.Value * (float)SpeakerBoost.Value;
         Preview.Content             = "Stop Preview";
     }
     else
     {
         Preview.Content = "Audio Preview";
         _audioPreview.StopEncoding();
         _audioPreview = null;
     }
 }
Exemplo n.º 7
0
        protected override void OnClosing(CancelEventArgs e)
        {
            base.OnClosing(e);

            Stop();

            if (_audioPreview != null)
            {
                _audioPreview.StopEncoding();
                _audioPreview = null;
            }

            _radioOverlayWindow?.Close();
            _radioOverlayWindow = null;

            _dcsAutoConnectListener.Stop();
            _dcsAutoConnectListener = null;
        }
        private void PreviewAudio(object sender, RoutedEventArgs e)
        {
            if (_audioPreview == null)
            {
                if (!_clientStateSingleton.MicrophoneAvailable)
                {
                    Logger.Info("Unable to preview audio, no valid audio input device available or selected");
                    return;
                }

                //get device
                try
                {
                    var inputId = Mic.SelectedIndex;
                    var output  = outputDeviceList[Speakers.SelectedIndex];

                    SaveSelectedInputAndOutput();


                    _audioPreview = new AudioPreview();
                    _audioPreview.SpeakerBoost = VolumeConversionHelper.ConvertVolumeSliderToScale((float)SpeakerBoost.Value);
                    _audioPreview.StartPreview(inputId, output);

                    Preview.Content = "Stop Preview";
                }
                catch (Exception ex)
                {
                    Logger.Error(ex,
                                 "Unable to preview audio - likely output device error - Pick another. Error:" + ex.Message);
                }
            }
            else
            {
                Preview.Content = "Audio Preview";
                _audioPreview.StopEncoding();
                _audioPreview = null;
            }
        }
        public void DrawAudioPlayer()
        {
            if (clipEditor == null || clipEditor.target != clip.clip)
            {
                clipEditor = Editor.CreateEditor(clip.clip);
            }

            //Get playing clip data
            if (clipPlaying)
            {
                clipPlaying = AudioPreview.IsClipPlaying(clip.clip);
                int sample = AudioPreview.GetClipSamplePosition(clip.clip);
                clipTime = sample / (float)clip.clip.samples;
            }

            //Preview toolbar
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Space(-4);

            if (!clipPlaying)
            {
                if (GUILayout.Button("Play", EditorStyles.toolbarButton))
                {
                    int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                    AudioPreview.PlayClip(clip.clip, sample);
                    AudioPreview.SetClipSamplePosition(clip.clip, sample);
                    clipPlaying = true;
                }
            }
            else
            {
                if (GUILayout.Button("Stop", EditorStyles.toolbarButton))
                {
                    AudioPreview.StopClip(clip.clip);
                    clipPlaying = false;
                }
            }

            GUILayout.FlexibleSpace();

            //Draw clip length label
            float clipLength = clip.clip.length * 1000;

            GUILayout.Label((clipTime * clipLength).ToString("0:00:000") + " / " + clipLength.ToString("0:00:000"));

            GUILayout.EndHorizontal();
            GUILayout.Space(10);


            //Get preview area rect
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 100);


            //Set time by click or drag in preview area
            Event e = Event.current;

            if ((e.type == EventType.MouseDrag || e.type == EventType.MouseDown) && rect.Contains(e.mousePosition))
            {
                //Snap
                Vector2 mousePos = Event.current.mousePosition;
                if (mousePos.x - rect.x < 10)
                {
                    mousePos.x = rect.x;
                }

                clipTime = Rect.PointToNormalized(rect, mousePos).x;
                int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                Repaint();
            }


            //Play-Pause by space
            if (e.type == EventType.KeyDown && e.keyCode == KeyCode.Space)
            {
                if (clipPlaying)
                {
                    AudioPreview.StopClip(clip.clip);
                    clipPlaying = false;
                }
                else
                {
                    int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                    AudioPreview.PlayClip(clip.clip, sample);
                    AudioPreview.SetClipSamplePosition(clip.clip, sample);
                    clipPlaying = true;
                }
                e.Use();
            }


            //Block native preview interactions
            if (e.type != EventType.Repaint && e.type != EventType.Layout && rect.Contains(e.mousePosition))
            {
                e.Use();
            }


            //Draw clip spectrum
            EditorGUI.DrawRect(rect, Color.black);
            rect = rect.Shrink(1);
            EditorGUI.DrawRect(rect, new Color(0.3f, 0.3f, 0.3f, 1.0f));
            clipEditor.OnPreviewGUI(rect, GUIStyle.none);


            //Draw progress bar
            rect.Set(rect.x + rect.width * clipTime, rect.y, 2, rect.height);
            EditorGUI.DrawRect(rect, Color.white);
        }