示例#1
0
        private void playNext()
        {
            String   currentPlaylistName = playingMedia.Playlist;
            Playlist _currentPlaylist    = null;

            foreach (Playlist playlist in playlists)
            {
                if (playlist.Name == currentPlaylistName)
                {
                    _currentPlaylist = playlist;
                }
            }
            if (_currentPlaylist != null)
            {
                if (!isShuffle)
                {
                    if (playingSongIndex < _currentPlaylist.Medias.Count - 1)
                    {
                        playMediaAtPlaylist(playingSongIndex + 1, _currentPlaylist);
                    }
                    else
                    {
                        //repeat all
                        if (repeat == 1)
                        {
                            playMediaAtPlaylist(0, _currentPlaylist);
                        }
                        else
                        {
                            MessageBox.Show("Out of the list", "Warning");
                            return;
                        }
                    }
                }
                else
                {
                    //repeat all
                    if (repeat == 1)
                    {
                        Random rnd       = new Random();
                        int    nextIndex = rnd.Next(_currentPlaylist.Medias.Count);
                        playMediaAtPlaylist(nextIndex, _currentPlaylist);
                    }
                    else
                    {
                        int nextIndex = getRandomIndex(_currentPlaylist);
                        if (nextIndex == -1)
                        {
                            if (repeat == 1)
                            {
                                playMediaAtPlaylist(0, _currentPlaylist);
                            }
                            else
                            {
                                MessageBox.Show("Out of the list", "Warning");
                            }
                        }
                        else
                        {
                            playMediaAtPlaylist(nextIndex, _currentPlaylist);
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Playlist not found, select another playlist", "Warning");
            }
        }
示例#2
0
        private void ImportPlaylistBtn_Click(object sender, RoutedEventArgs e)
        {
            var screen = new OpenFileDialog();

            if (screen.ShowDialog() == true)
            {
                var filename = screen.FileName;
                if (String.IsNullOrEmpty(filename))
                {
                    return;
                }
                using (StreamReader reader = new StreamReader(filename, Encoding.Default, true))
                {
                    string currentLine = reader.ReadLine();

                    var    tokens = currentLine.Split(new string[] { "|" }, StringSplitOptions.None);
                    string name   = tokens[0];
                    if (!String.IsNullOrEmpty(name))
                    {
                        BindingList <Media> medias = new BindingList <Media>();
                        if (tokens.Length > 1)
                        {
                            for (int i = 1; i < tokens.Length; i++)
                            {
                                if (!System.IO.File.Exists(tokens[i]))
                                {
                                    continue;
                                }
                                Media media = new Media(tokens[i], name);
                                medias.Add(media);
                            }
                        }

                        for (int i = 0; i < playlists.Count; i++)
                        {
                            if (name == playlists[i].Name)
                            {
                                MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show($"This playlist name: \"{name}\" is already taken. Do you want to rename it?", "Rename Confirmation", System.Windows.MessageBoxButton.YesNo);
                                if (messageBoxResult == MessageBoxResult.Yes)
                                {
                                    RenameDialog inputDialog = new RenameDialog();
                                    if (inputDialog.ShowDialog() == true)
                                    {
                                        String newName = inputDialog.Answer;
                                        if (String.IsNullOrEmpty(newName))
                                        {
                                            MessageBox.Show("Name must not be empty!");
                                            return;
                                        }
                                        for (int j = 0; j < playlists.Count; j++)
                                        {
                                            if (newName == playlists[i].Name)
                                            {
                                                MessageBox.Show("This name is already taken");
                                                return;
                                            }
                                        }

                                        Playlist _playlist = new Playlist {
                                            Medias = medias, Name = newName
                                        };
                                        playlists.Add(_playlist);
                                        MessageBox.Show("Playlist is added!");
                                    }
                                }
                                return;
                            }
                        }


                        Playlist playlist = new Playlist {
                            Medias = medias, Name = name
                        };
                        playlists.Add(playlist);
                        MessageBox.Show("Playlist is added!");
                    }
                }
            }
        }
示例#3
0
        private void getPlaylists()
        {
            playlists = new BindingList <Playlist>();

            if (System.IO.File.Exists("file.txt"))
            {
                try
                {
                    using (StreamReader reader = new StreamReader("file.txt", Encoding.Default, true))
                    {
                        string firstLine = reader.ReadLine();
                        if (String.IsNullOrEmpty(firstLine))
                        {
                            playDefaultMusic();
                            playlistsListBox.ItemsSource = playlists;
                            return;
                        }
                        var tokensLastsong = firstLine.Split(new string[] { "|" }, StringSplitOptions.None);

                        string currentLine;
                        while ((currentLine = reader.ReadLine()) != null)
                        {
                            var    tokens = currentLine.Split(new string[] { "|" }, StringSplitOptions.None);
                            string name   = tokens[0];
                            if (!String.IsNullOrEmpty(name))
                            {
                                BindingList <Media> medias = new BindingList <Media>();
                                if (tokens.Length > 1)
                                {
                                    for (int i = 1; i < tokens.Length; i++)
                                    {
                                        if (!System.IO.File.Exists(tokens[i]))
                                        {
                                            continue;
                                        }
                                        Media media = new Media(tokens[i], name);
                                        medias.Add(media);
                                    }
                                }

                                Playlist playlist = new Playlist {
                                    Medias = medias, Name = name
                                };
                                playlists.Add(playlist);
                            }
                        }
                        getLastSongPlaying(tokensLastsong[0], tokensLastsong[1], tokensLastsong[2]);
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show("Read file save error!\n" + err.Message, "Error");
                    playDefaultMusic();
                }
            }
            else
            {
                playDefaultMusic();
            }

            playlistsListBox.ItemsSource = playlists;
        }