示例#1
0
        private void Button10_Click(object sender, EventArgs e)
        {
            //Una lista de objetos libro

            //Leer el archivo
            FileStream   stream = new FileStream("Cancion.json", FileMode.Open, FileAccess.Read);
            StreamReader reader = new StreamReader(stream);

            while (reader.Peek() > -1)
            {
                string       lectura    = reader.ReadLine();
                ClassCancion libroLeido = JsonConvert.DeserializeObject <ClassCancion>(lectura);
                listaLibro.Add(libroLeido);
            }
            reader.Close();
            //Mostrar la lista de libros en el gridview
            dataGridView2.DataSource = listaLibro;
            dataGridView2.Refresh();
        }
示例#2
0
        private async void Button9_ClickAsync(object sender, EventArgs e)
        {
            //nuevo cliente de Youtube
            var client = new YoutubeClient();
            //lee la dirección de youtube que le escribimos en el textbox
            var videoId = NormalizeVideoId(textBox2.Text);                           //normaliza
            var video   = await client.GetVideoAsync(videoId);                       //descarga el video

            var streamInfoSet = await client.GetVideoMediaStreamInfosAsync(videoId); //descarga la informacion del video

            // Busca la mejor resolución en la que está disponible el video
            var streamInfo = streamInfoSet.Muxed.WithHighestVideoQuality(); //descarga el video con la maxima calidad

            // Compone el nombre que tendrá el video en base a su título y extensión
            var fileExtension = streamInfo.Container.GetFileExtension(); //mira la extencion mp4
            var fileName      = $"{video.Title}.{fileExtension}";        //agrega el titulo del video y la extencion mp4

            //TODO: Reemplazar los caractéres ilegales del nombre
            //fileName = RemoveIllegalFileNameChars(fileName);

            //Activa el timer para que el proceso funcione de forma asincrona
            timer1.Enabled = true;

            // mensajes indicando que el video se está descargando
            labelEstadoDescarga.Text = "Descargando el video ... "; //mensaje

            //TODO: se pude usar una barra de progreso para ver el avance
            //using (var progress = new ProgressBar())

            //Empieza la descarga
            await client.DownloadMediaStreamAsync(streamInfo, fileName); //empieza la descarga

            //Ya descargado se inicia la conversión a MP3
            var Convert = new NReco.VideoConverter.FFMpegConverter();                    //convierte el video
            //Especificar la carpeta donde se van a guardar los archivos, recordar la \ del final
            String SaveMP3File = @"C:\DescargasMP3\" + fileName.Replace(".mp4", ".mp3"); //en donde se va a guardar el archivo

            //Guarda el archivo convertido en la ubicación indicada
            Convert.ConvertMedia(fileName, SaveMP3File, "mp3");

            //Si el checkbox de solo audio está chequeado, borrar el mp4 despues de la conversión
            if (checkBox1.Checked)     //funcion checkbox
            {
                File.Delete(fileName); // si quemos solo el audio manda a borrar el mp4 y nos quedamos con el mp3
            }
            //Indicar que se terminó la conversion
            labelEstadoDescarga.Text      = "Archivo Convertido en MP3";
            timer1.Enabled                = false;
            labelEstadoDescarga.BackColor = Color.White;

            //TODO: Cargar el MP3 al reproductor o a la lista de reproducción
            //CargarMP3s();
            //Se puede incluir un checkbox para indicar que de una vez se reproduzca el MP3
            //if (ckbAutoPlay.Checked)
            //  ReproducirMP3(SaveMP3File);


            //Declarar un objeto de Clase cliente
            ClassCancion cancionJson = new ClassCancion();

            //Asignarle valores al cliente
            cancionJson.DireccionCancion = SaveMP3File;
            cancionJson.NombreCancion    = fileName.Replace("Mp4", "MP3");

            //Convertir el objeto en una cadena JSON
            string salida = JsonConvert.SerializeObject(cancionJson);
            //Guardar el archivo de texto, con extension Json
            FileStream   stream = new FileStream("Cancion.json", FileMode.Append, FileAccess.Write);
            StreamWriter writer = new StreamWriter(stream);

            MessageBox.Show("La Canción: " + cancionJson.NombreCancion + " Se Registro Correctamente");

            writer.WriteLine(salida);
            writer.Close();

            nombrecancion = cancionJson.NombreCancion;
            rutascancion  = cancionJson.DireccionCancion;
            object rowmidex = dataGridView1.CurrentRow.Index;

            reproductor.URL = cancionJson.DireccionCancion;;
            string[] stringArray = new string[] { rutascancion };
            reproductor.URL = stringArray[0];
            //////////////////////////////////////////

            return;
        }