Losowanie muzyk z folderu

0

Witam. Chciałbym się zapytać a zarazem dowiedzieć jak zrobić losowanie muzyk z konkretnego folderu? Chciałbym aby program wylosował jakąś muzykę spośród 100 w tym folderze i ją otworzył, idzie coś takiego zrobić? Każda muzyka ma inny tytuł, nie są ponumerowane od 1 do 100. Proszę o jakieś pomysły czy przykłady

Z góry dziękuje i pozdrawiam

0
DirectoryInfo d = new DirectoryInfo(@Path);
string str = string.Empty;
FileInfo[] Files = d.GetFiles("*.mp3"); //Getting Text files
foreach(FileInfo file in Files )
{
  str += ", " + file.Name;
}
0

Udało mi się dzięki temu zrobić pobieranie wszystkich mp3 do listview tylko za nic nie wiem jak wylosować jakąś muzykę, możecie mi podpowiedzieć?

1

tylko za nic nie wiem jak wylosować jakąś muzykę

Skoro masz już gotową listę to wiesz ile jest tych mp3 - użyj generatora liczb pseudolosowych i wylosuj liczbę z przedziału 0 .. n-1 (gdzie n to ilość utworów), pobierz informacje o utworze będącym na liście pod wylosowanym indeksem i zrób z nim to, co chcesz.

0

A jeżeli w listviewie mam coś takiego

1 muzyka1
2 muzyka2
3 muzyka3

Jeżeli sprawdzę jaką liczbę wylosowało w tej zmiennej od numerowania utworów to jak np. przy wylosowanej liczbe 3 mogę pobrać dalszą część itemu z listviewa czyli tytuł?

0

akurat ostatnio bawiłem się w pisanie mp3 playera.

 if (randomSelection== false)
{
      // ....
}
else
{
     Random r = new Random();
     int value = r.Next(0, mainList.trackList.Count - 1);

     axWindowsMediaPlayer1.URL = mainList.trackList[value].path;
     listBoxTrackList.SelectedIndex = value;
}

Najlepiej stwórz sobie jakiś kontener w którym trzymasz listę wczytanych wcześniej utworów (nazwa, ścieżka itp.)
Takich kontenerów możesz mieć kilka bo podczas wyszukiwania utworów lista się zmienia, to samo jeśli chcesz dodać np. jakieś kolejkowanie utworów, podział na różne gatunki itp..

0

Kontener mam stworzony w postaci listview, nada się coś takiego? Nie wiem jak się odnieść np. do 40 utworu na listview czyli, pobrać nazwę utworu na 40 miejscu i ją otworzyć (to raczej wiem jak zrobić)

0

Stwórz sobie kontener do przechowywania informacji o utworach, a tylko część z nich niech trafia do LV. Możesz też dodać wybór wyświetlanych kolumn. W LV możesz przechowywać text, a chcesz też kilka intów ;)

0

A możesz mi podać jakiś przykładowy kontener do tego typu rzeczy i jakiś przykład, w którym po wylosowaniu liczby 34 odnosisz się do 34 utworu na listview? nie mam pomysłu jak się do tego odnieść ani jak ma wyglądać taki kontener

1

Nie myśl w kategoriach kontrolek GUI, bo ono służy do wyświetlania, a nie przechowywania danych.

Jeśli chcesz skojarzyć nazwę pliku z unikalnym numerem, to najlepiej będzie, jeśli użyjesz Dictionary<int, string>.

0

Dzięki bardzo, udało mi się to zrobić za pomocą dictionary.

Mam jeszcze pytanko, gdy muzyka się skończy na playerze widnieje napis zatrzymany. Jak mogę zrobić aby po muzyce losowało kolejną muzykę, jak mogę sprawdzić ile muzyka trwa lub czy już się skończyła, udało mi się zrobić idealnie losowanie muzyk dzięki directory, lecz nie mogę znaleźć funkcji, która zwróci mi false, gdy muzyka się skończy. Znalazłem funkcje, która sprawdza mi całkowity czas utworu, można zrobić dodawanie co sekunde aż dodawanie == czasowi utworu, lecz to chyba głupi pomysł. Korzystam z windows media player w c#

0

masz wszystko w dokumentacji, poczytaj o evencie PlayStateChange i samym 'fladze' PlayState.

0

Dzięki bardzo, na razie mam brak pytań.

Dzięki wielkie, pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1