private void PlayTrack(AudioPlayer player, TrackList.Track track, float fromPosition = 0) { if (player.CurrentTrack != track.ResourcePath) { var stream = GD.Load <AudioStream>(track.ResourcePath); player.Player.Stream = stream; player.CurrentTrack = track.ResourcePath; player.Player.Play(fromPosition); GD.Print("Jukebox: starting track: ", track.ResourcePath, " position: ", fromPosition); } }
/// <summary> /// Обработчик события нажатия(клика мышкой) кнопки - "UpTR" в трек листе (перемещения трека вверх на 1 позицию в треклисте) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnMoveTrackUp_Click(object sender, RoutedEventArgs e) { // если треклист листбокса пуст , то выход if (TrackListBox.SelectedIndex == -1) { return; } // если в треклисте всего 1 трек, то ненужно никуда его передвигать - выход if (TrackListBox.Items.Count == 1) { return; } // если выбран первый трек, то ничего смещать не нужно - выход if (TrackListBox.SelectedIndex == 0) { return; } // запоминаем выделенный трек int index = TrackListBox.SelectedIndex; string str1 = (string)TrackListBox.Items[TrackListBox.SelectedIndex]; string str2 = (string)TrackListBox.Items[TrackListBox.SelectedIndex - 1]; int i = 0; for (;;) { if (str1[i] != ' ') { str1 = str1.Remove(0, 1); // удаляем цифру если не пробел } else { break; } } i = 0; for (;;) { if (str2[i] != ' ') { str2 = str2.Remove(0, 1); // удаляем цифру если не пробел } else { break; } } // меняем местами цифры и 2 строки в листбоксе int ind = TrackListBox.SelectedIndex; TrackListBox.Items[TrackListBox.SelectedIndex - 1] = ind.ToString() + "." + str1; ind++; TrackListBox.Items[TrackListBox.SelectedIndex] = ind.ToString() + "." + str2; // меняем местами выбранный пуить с путём который предыдущий в списке(List) полных имён TrackList.Track path = TrackList.Tracks[index - 1]; // сохраняем путь выбранного трека - верхний TrackList.Tracks.Remove(TrackList.Tracks[index - 1]); // удаляем из листа путь выбранного трека -верхний TrackList.Tracks.Insert(index, path); // вставляем путь верхнего трека ниже на 1 позицию в треклисте TrackListBox.SelectedIndex = index - 1; // переводим проигрывание трека на номер выше }