Exemplo n.º 1
0
 static void Play(Rockola r, Process p, string cancion)
 {
     p.StartInfo.Arguments       = "\"" + r.Ruta + "\\" + cancion + "\"";
     p.StartInfo.CreateNoWindow  = true;
     p.StartInfo.UseShellExecute = false;
     p.Start();
     Console.Clear();
     Menu2("Tocando: " + cancion, p);
 }
Exemplo n.º 2
0
 static string Retroceder(Rockola r, string a)
 {
     r.Nodo = r.Nodo.Previous;
     a      = r.Nodo.Value;
     return(a);
 }
Exemplo n.º 3
0
 static string Adelante(Rockola r, string a)
 {
     r.Nodo = r.Nodo.Next;
     a      = r.Nodo.Value;
     return(a);
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            ConsoleKeyInfo op, op1;
            int            ta      = 0;                                                      // tamaño para consola cuando liste
            string         dir     = @"C:\Program Files (x86)\Webteh\BSPlayer\bsplayer.exe"; // direccion donde esta el programa, dejar el @
            string         ruta    = @"E:/musica";                                           // carpeta donde esta la musica, dejar el @
            Process        proceso = new Process();

            proceso.StartInfo.FileName = (dir);
            Rockola       rock = new Rockola(ruta);;
            DirectoryInfo di   = new DirectoryInfo(ruta); //archivos en la ruta// permite trabajar con archivos de una direccion

            foreach (var fi in di.GetFiles())             // devuelve los archivos de direccion
            {
                if (fi.Extension.Contains(".mp"))         //solo agrega si la extension es .mp
                {
                    rock.AddMusic(fi.Name);               //agregando a la lista
                    ta++;
                }
            }
            string actual = rock.Nodo.Value.ToString();

            Menu();
            do
            {
                Console.Clear();
                Console.SetWindowSize(60, 10);                                                                  //tamaño de consola
                Console.SetBufferSize(60, 10);                                                                  //tamaño del buffer
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("Canción Actual: " + actual.Remove(actual.IndexOf(".mp")).Replace("_", " ")); //cancion a reproducir
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("\nReproducir [Enter]\nListar [Espacio]\nAvanzar [Flecha -►]\nRetroceder [Flecha ◄-]\nReproduccion Continua [C]\nRandom [R]\n\nSalir [Esc]");
                op = Console.ReadKey();
                switch (op.Key)
                {
                case ConsoleKey.Enter:    //reproduciendo
                {
                    Play(rock, proceso, actual);
                    break;
                }

                case ConsoleKey.Spacebar:    //listando
                {
                    ta = ta + 3;
                    do
                    {
                        if (ta > 58)                       //si el tamaño de la lista es mayor
                        {
                            Console.SetWindowSize(60, 58); // el tamaño se reduce pero la lista queda completa
                            Console.SetBufferSize(60, ta); // el tamaño del buffer permitira ver toda la lista solo con subir la barra
                        }
                        else
                        {
                            Console.SetWindowSize(60, ta);        //sino solo tendra su tamaño de lista + 3
                        }
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        foreach (string s in rock)                                           //listando con el objeto
                        {
                            Console.WriteLine(s.Remove(s.IndexOf(".mp")).Replace("_", " ")); //remueve la extension .mp y los guiones por espacios, si esque lo tienen y presenta por pantalla
                        }
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine("\nPresione [Esc] para salir");
                        op1 = Console.ReadKey();
                    } while (op1.Key != ConsoleKey.Escape);
                    break;
                }

                case ConsoleKey.RightArrow:    //avanzando
                {
                    try
                    {
                        actual = Adelante(rock, actual);
                        break;
                    }
                    catch (Exception)
                    {
                        rock.Nodo = rock.Lista.First;        //apunta al ultimo
                        actual    = rock.Nodo.Value;
                        break;
                    }
                }

                case ConsoleKey.LeftArrow:    //retrocediendo
                {
                    try
                    {
                        actual = Retroceder(rock, actual);
                        break;
                    }
                    catch (Exception)
                    {
                        rock.Nodo = rock.Lista.Last;        //apunta al primero
                        actual    = rock.Nodo.Value;
                        break;
                    }
                }

                case ConsoleKey.C:    //continuo
                {
                    try
                    {
                        rock.Nodo = rock.Lista.First;
                        actual    = rock.Nodo.Value;
                        foreach (string c in rock)
                        {
                            Play(rock, proceso, actual);
                            proceso.WaitForExit();        //espera a que el programa se cierre
                            actual = Adelante(rock, actual);
                        }
                        break;
                    }
                    catch (Exception)
                    {
                        rock.Nodo = rock.Lista.First;        // cuando se acabe, appuntara al primero
                        actual    = rock.Nodo.Value;
                        break;
                    }
                }

                case ConsoleKey.R:
                {
                    Random r = new Random();
                    int    n = r.Next(0, rock.Lista.Count - 1);
                    actual = rock.Lista.ElementAt(n);
                    Play(rock, proceso, actual);
                    break;
                }

                case ConsoleKey.Escape:    //salida
                {
                    Console.Clear();
                    Console.SetWindowSize(37, 8);        //tamaño de consola
                    Console.SetBufferSize(37, 8);        //tamaño del buffer
                    Menu2("Aun queda más musica por escuchar :)", proceso);
                    break;
                }
                }
            } while (op.Key != ConsoleKey.Escape);
        }