public void Play(Playinglist allTracksPlayinglist) { if (!NextButton.IsEnabled) { NextButton.IsEnabled = true; NextButton.InvalidateVisual(); } playinglist = allTracksPlayinglist; Player.Current?.Play(this, playinglist, null, TimeSpan.Zero, ShuffleButton.IsPressed, VolumeSlider.Value); }
private static void assert(HashSet <int> expectedPlaylistTrackKeys, Playinglist playinglist) { Assert.AreEqual(expectedPlaylistTrackKeys.Count, playinglist.ToPlayTracks.Count); foreach (var playinglistItem in playinglist.ToPlayTracks) { if (playinglistItem is PlayinglistItemTrack playinglistItemTrack) { Assert.IsTrue(expectedPlaylistTrackKeys.Contains(playinglistItemTrack.Track.Key)); } } }
private void playNextTrack() { Track = Playinglist?.GetNext(IsShuffle ? random : null) ?? null; if (Track is null) { trace($"playNextTrack() cannot find a track."); mediaPlayer.Pause();//prevents from immediate playing when user changes position State = PlayerStateEnum.Idle; } else { trace($"Play next {(IsShuffle ? "random " : "")}{Track.Title}"); playtrack(); } }
public TestPlayerControlWindow() { InitializeComponent(); TraceTextBox.Text = "Copyrights: " + Environment.NewLine + "Music promoted by https://www.free-stock-music.com" + Environment.NewLine + @"Track1: Stream Countdown(10s) by Alexander Nakarada | https://www.serpentsoundstudios.com Attribution 4.0 International(CC BY 4.0) https://creativecommons.org/licenses/by/4.0/" + Environment.NewLine + Environment.NewLine + @"Track2: Humorous And Comic Intro by Free Music | https://soundcloud.com/fm_freemusic Creative Commons Attribution 3.0 Unported License https://creativecommons.org/licenses/by/3.0/deed.en_US" + Environment.NewLine + Environment.NewLine + @"Track3: Music Logo For Storytelling by Free Music | https://soundcloud.com/fm_freemusic Creative Commons Attribution 3.0 Unported License https://creativecommons.org/licenses/by/3.0/deed.en_US" + Environment.NewLine + Environment.NewLine + @"Track4: Happy Media Music Opener by Free Music | https://soundcloud.com/fm_freemusic Creative Commons Attribution 3.0 Unported License https://creativecommons.org/licenses/by/3.0/deed.en_US" + Environment.NewLine + Environment.NewLine + "MediaPlayer test trace" + Environment.NewLine + "======================" + Environment.NewLine; _ = new DC(null); projectDirectory = new DirectoryInfo(Environment.CurrentDirectory).Parent !.Parent !.Parent !.Parent !; location = new Location("locationPath", projectDirectory.FullName, isStoring: false); track1 = new Track(new FileInfo(projectDirectory.FullName + @"\track1.mp3"), location, isStoring: false); track2 = new Track(new FileInfo(projectDirectory.FullName + @"\track2.mp3"), location, isStoring: false); track3 = new Track(new FileInfo(projectDirectory.FullName + @"\track3.mp3"), location, isStoring: false); track4 = new Track(new FileInfo(projectDirectory.FullName + @"\track4.mp3"), location, isStoring: false); var errorFileName = projectDirectory.FullName + @"\trackError.mp3"; File.Copy(track4.FullFileName, errorFileName, overwrite: true); trackError = new Track(new FileInfo(errorFileName), location, isStoring: false); trackError.Update( "TrackCausingError", trackError.Album, trackError.AlbumTrack, trackError.Artists, trackError.Composers, trackError.Publisher, trackError.Year, trackError.Genres, trackError.Weight, trackError.Volume, trackError.SkipStart, trackError.SkipEnd, trackError.TitleArtists); File.Delete(errorFileName); allTracks = new List <Track> { track1, track2, track3, track4 }; allTracksPlayinglist = new Playinglist(allTracks); Player.Current !.Traced += Player_Traced; TrackPlayer.Init(getPlayinglist); Play1Button.Click += Play1Button_Click; Play2Button.Click += Play2Button_Click; PlayAllButton.Click += PlayAllButton_Click; PlayErrorButton.Click += PlayErrorButton_Click; IsTracePositionButton.Click += IsTracePositionButton_Click; }