/// <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);
        }
Пример #2
0
 /// <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;
 }