public virtual void Load(Track track) { if (Player.CheckAccess()) { var mediaPlayerTrack = track as EightTracksTrack; if (mediaPlayerTrack != null) { CurrentTrack = mediaPlayerTrack; CurrentTrackElapsed = TimeSpan.Zero; Player.Open(mediaPlayerTrack.Uri); } } else { Player.Dispatcher.BeginInvoke(new Action<Track>(Load), DispatcherPriority.Background, track); } }
protected virtual void OnTrackComplete(Track currentTrack) { var handler = TrackComplete; if (handler != null) { handler(this, new TrackEventArgs(currentTrack)); } }
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 virtual bool CanPlay(Track radioTrack) { return radioTrack is EightTracksTrack; }
public bool CanPlay(Track track) { return track is GroovesharkTrack; }
public TrackChangedEventArgs(Track previousTrack, Track currentTrack) { PreviousTrack = previousTrack; CurrentTrack = currentTrack; }
public IEnumerable<Track> GetTracksByName(string name) { Track[] tracks = new Track[0]; if (!IsLoggedIn()) { return tracks; } QueryServiceClient query = new QueryServiceClient(); try { QueryResult result = query.Query(name, 0, 150, 0, 0, 0, 0); tracks = result.Tracks .Where(t => t.IsAvailable) .Select(ConvertTrack) .ToArray(); query.Close(); } catch (Exception e) { _logger.Log(e.Message, Category.Exception, Priority.Medium); query.Abort(); } return tracks; }
private void ExecuteShareTrack(Track track) { }
private bool CanExecuteShareTrack(Track track) { return true; }