public void EliminarArchivoDeCancion() { try { UtileriasDeArchivos.BorrarArchivo(IdArchivo); } catch (Exception e) { Console.WriteLine("No se encontro el archivo de cancion a eliminar. " + e.Message); } }
public void DescargarArchivoDeCancion() { byte[] archivo = null; bool errorDeConectividad = false; APIGatewayService api = new APIGatewayService(); try { archivo = api.DescargarArchivoPorId(IdArchivo); } catch (Exception) { errorDeConectividad = true; } if (!errorDeConectividad) { UtileriasDeArchivos.GuardarArchivo(IdArchivo, archivo); } }
private void Reproducir(Cancion cancion) { Action action = new Action(DesactivarControles); Handler.Post(action); byte[] archivo = null; bool huboExcepcion = false; APIGatewayService api = new APIGatewayService(); if (!UtileriasDeArchivos.CancionYaDescargada(cancion.IdArchivo)) { try { archivo = api.DescargarArchivoPorId(cancion.IdArchivo); cancion.CargarMetadatosDeLaCancion(Usuario.Id); } catch (System.Exception) { Toast.MakeText(View.Context, "Error al realizar la descarga, intente de nuevo mas tarde", ToastLength.Long).Show(); huboExcepcion = true; } } else { try { archivo = UtileriasDeArchivos.LeerArchivoPorId(cancion.IdArchivo); } catch (ArgumentException) { huboExcepcion = true; } } if (!huboExcepcion && archivo != null && archivo.Length > 0) { if (Canciones[IndiceActual].Metadatos == null) { bool resultado = false; try { resultado = api.CrearNuevoMetadato(Usuario.Id, Canciones[IndiceActual].Id); } catch (Exception) { Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show(); } if (!resultado) { Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show(); } else { Canciones[IndiceActual].CargarMetadatosDeLaCancion(Usuario.Id); } } var buttonLike = View.FindViewById <ImageButton>(Resource.Id.ibtnLike); if (cancion.Metadatos.MeGusta) { buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_like)); } else { buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_dislike)); } var buttonReproducir = View.FindViewById <ImageButton>(Resource.Id.ibtnReproducir); buttonReproducir.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_pausa)); var txtCancion = View.FindViewById <TextView>(Resource.Id.txtNombreCancion); txtCancion.Text = cancion.Nombre; var txtArtista = View.FindViewById <TextView>(Resource.Id.txtNombreArtista); if (cancion.Artistas.FirstOrDefault() != null) { txtArtista.Text = cancion.Artistas.FirstOrDefault().Nombre; } var txtTiempoTotal = View.FindViewById <TextView>(Resource.Id.txtDuracionTotal); TimeSpan tiempoActual = TimeSpan.FromMilliseconds(Reproductor.Duration); txtTiempoTotal.Text = System.String.Format("{0}:{1:D2}", tiempoActual.Minutes, tiempoActual.Seconds); try { Reproductor.Reset(); Java.IO.File archivoTemporal = Java.IO.File.CreateTempFile(cancion.Id, "mp3", Context.CacheDir); archivoTemporal.DeleteOnExit(); Java.IO.FileOutputStream outputStream = new Java.IO.FileOutputStream(archivoTemporal); outputStream.Write(archivo); outputStream.Close(); Java.IO.FileInputStream fis = new Java.IO.FileInputStream(archivoTemporal); Reproductor.SetDataSource(fis.FD); Reproductor.Prepare(); Reproductor.Start(); CancionCorriendo = true; } catch (System.Exception e) { Toast.MakeText(View.Context, e.Message, ToastLength.Long).Show(); } AgregarCancionAHistorial(cancion.Id); } action = new Action(ActivarControles); Handler.Post(action); ActualizadorCorriendo = true; }