/// <summary> /// Returns the current position in the track. /// </summary> /// <returns>Current position in the track.</returns> public async Task <TrackPosition> GetCurrentTrackPositionAsync() { TrackPosition position = DEFAULT_TRACK_POSITION; await Task.Run(() => { lock (this) { if (_waveStream != null) { position = new TrackPosition(_waveStream.TotalTime, _waveStream.CurrentTime); } else { throw new AudioPlayerException("No file is set to play, so there is no track position. Call SetFile first."); } } }); return(position); }
/// <summary> /// Constructor accepting a track ID and a trackposition struct representing the position in the track. /// </summary> /// <param name="trackId">ID of the track.</param> /// <param name="trackPosition">A TrackPosition instance.</param> public PositionChangedEventArgs(string trackId, TrackPosition trackPosition) { TrackId = trackId; Position = trackPosition; }