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; }
static bool DestroyIfNecessary(AudioPreview audioPreview) { AudioSource audioSource = audioPreview.GetComponent <AudioSource>(); if (!audioSource || !audioSource.isPlaying) { Object.DestroyImmediate(audioPreview.gameObject); return(true); } return(false); }
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; } }
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; } }
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); }