public void ChangeCurrentTime(long timestamp) { player.SourceProvider.MediaPlayer.Time = timestamp; CurrentTimeChanged?.Invoke(this, new CurrentTimeChangedEventArgs { CurrentTime = timestamp }); }
/// <summary> Set timeflow current time.</summary> /// <param name="seconds">Current time in seconds to be set.</param> /// <param name="invokeEvents"> True, if method should invoke TimeChange event</param> public void SetTime(double seconds, bool invokeEvents = true) { TimeSpan oldTime = _time; _time = MakeTimeSpan(seconds); if (_time >= Duration) { StopTimeFlowEngine(); _time = Duration; } if (invokeEvents && oldTime != _time && CurrentTimeChanged != null) { CurrentTimeChanged.Invoke(oldTime, _time); } }
private void OnCurrentTimeChanged(IEnumerable <PlaybackCurrentTime> times) { CurrentTimeChanged?.Invoke(this, new PlaybackCurrentTimeChangedEventArgs(times)); }
public void SelectFile(string fileName) { InvalidFile = false; InvalidFileChanged?.Invoke(this, EventArgs.Empty); if (Playing) { Stop(); } _source = null; string extension = Path.GetExtension(fileName).ToLower(); try { if (extension == ".mp3") { _source = new Mp3FileReader(fileName); } else if (extension == ".wav") { _source = new WaveFileReader(fileName); } else if ((extension == ".fla") || (extension == ".flac")) { _source = new FlacReader(fileName); } } catch { InvalidFile = true; InvalidFileChanged?.Invoke(this, EventArgs.Empty); _source = null; } TotalTimeChanged?.Invoke(this, EventArgs.Empty); if (_source == null) { return; } _stretcher = new RubberBandWaveStream(_source); _stretcher.SourceRead += (sender, e) => { CurrentTimeChanged?.Invoke(this, e); }; _stretcher.EndOfStream += (sender, e) => { ReachedEnd?.Invoke(this, e); Stop(); }; TempoChanged?.Invoke(this, EventArgs.Empty); CurrentTimeChanged?.Invoke(this, EventArgs.Empty); _waveOut.Init(_stretcher); }
public void RefreshTime() { CurrentTimeChanged?.Invoke(this, EventArgs.Empty); }