public void Load(Track track)
        {
            var currentTrack = track as GroovesharkTrack;

            if (currentTrack != null)
            {
                lock (_trackPlayerLock)
                {
                    try
                    {
                        if (_trackPlayer != null)
                        {
                            _trackPlayer.Stop();
                        }
                    }
                    catch (Exception e)
                    {
                        _log.Log("While disposing old trackplayer: " + e.Message, Category.Warn, Priority.Medium);
                    }

                    var client = GroovesharkModule.GetClient();
                    var stream = client.GetMusicStream(currentTrack.SongID, currentTrack.ArtistID);

                    Action <Track>          trackComplete = OnTrackComplete;
                    Action <bool>           isPlaying     = parameter => IsPlaying = parameter;
                    Action <bool>           isBuffering   = parameter => IsBuffering = parameter;
                    Action <double, double> trackProgress = OnTrackProgress;
                    _trackPlayer = new GrooveSharkTrackPlayerHandler(
                        _log,
                        currentTrack,
                        trackComplete,
                        isPlaying,
                        isBuffering,
                        trackProgress);

                    _trackPlayer.Initialize(stream.Stream);
                }
            }
        }
        public void Load(Track track)
        {
            var currentTrack = track as GroovesharkTrack;

            if (currentTrack != null)
            {
                lock (_trackPlayerLock)
                {
                    try
                    {
                        if (_trackPlayer != null)
                        {
                            _trackPlayer.Stop();
                        }
                    }
                    catch (Exception e)
                    {
                        _log.Log("While disposing old trackplayer: " + e.Message, Category.Warn, Priority.Medium);
                    }

                    var client = GroovesharkModule.GetClient();
                    var stream = client.GetMusicStream(currentTrack.SongID, currentTrack.ArtistID);

                    Action<Track> trackComplete = OnTrackComplete;
                    Action<bool> isPlaying = parameter => IsPlaying = parameter;
                    Action<bool> isBuffering = parameter => IsBuffering = parameter;
                    Action<double, double> trackProgress = OnTrackProgress;
                    _trackPlayer = new GrooveSharkTrackPlayerHandler(
                        _log,
                        currentTrack,
                        trackComplete,
                        isPlaying,
                        isBuffering,
                        trackProgress);

                    _trackPlayer.Initialize(stream.Stream);
                }
            }
        }