public void Stop() { PlayingState = PlayingStareType.Stopped; Recorder.time = (float)(lastPlayedTime - StartTime); Player.Pause(); vp.Pause(); Recorder.Pause(); }
public void StartReviewing(RecordingManager sender, VideoPlayer videoPlayer, AudioSource recorder, AudioClip master, double startTime, int endPos, AudioSource player) { ReviewPanel.SetActive(true); Sender = sender; vp = videoPlayer; Recorder = recorder; Player = player; StartTime = startTime; InitialStartTime = startTime; Master = master; EndPosInRecording = endPos; lastPlayedTime = startTime; int samples = Recorder.clip.frequency; LengthTime = (float)endPos / samples; EndTime = StartTime + LengthTime; InitialEndTime = EndTime; StartPosInMaster = Master.channels * Mathf.FloorToInt(Master.samples * ((float)startTime / Master.length)); vp.time = startTime; Player.time = (float)startTime; Player.Pause(); vp.Pause(); Recorder.Pause(); Player.volume = OverwriteToggle.isOn ? 0 : 1; if (isFirstTime) { ObservableEventTrigger et = SeekBar.gameObject.AddComponent <ObservableEventTrigger>(); et.OnPointerDownAsObservable().Subscribe(x => { focusOnSeekBar = true; }); et.OnPointerUpAsObservable().Subscribe(x => { focusOnSeekBar = false; }); SeekBar.OnValueChangedAsObservable().Where(x => !seekingByPlaying && isRunning).Throttle(new System.TimeSpan(500)).Subscribe(x => { double time = StartTime + x * LengthTime; lastPlayedTime = time; vp.time = time; Player.time = (float)time; Recorder.time = (float)(x * LengthTime); Player.Pause(); vp.Pause(); Recorder.Pause(); }); OverwriteToggle.OnValueChangedAsObservable().Subscribe(overwrite => { if (isRunning) { Player.volume = overwrite ? 0 : 1; } }); vp.seekCompleted += OnSeekCompleted; } PlayingState = PlayingStareType.Playing; isFirstTime = false; isRunning = true; }
public void Play() { PlayingState = PlayingStareType.Playing; double time = lastPlayedTime; vp.time = time; Player.time = (float)time; Recorder.time = (float)(SeekBar.value * LengthTime); Player.Pause(); vp.Pause(); Recorder.Pause(); }