Comunidad Gambas-es
gbAmp un nuevo reproductor de mp3, wav y ogg - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: gbAmp un nuevo reproductor de mp3, wav y ogg (/thread-538.html)

Páginas: 1 2 3 4 5 6 7


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - tincho - 16-08-2021

(16-08-2021, 10:11)Shordi escribió: ¡No es un Bug, es una Feature!

Me lo temía Smile
Perfecto, de todos modos, como sabes, en gnome3 no existe donde usar el tryicon.
(16-08-2021, 10:11)Shordi escribió: Ese era el comportamiento inicial ... Se podrían implementar ciertos controles (si se hace click y en la carpeta no hay mp3 entonces no se buscan... y cosas así) pero dejar la opción de buscar al usuario con el dobleClick es lo que me pareció más adecuado... pero estoy abierto a cualquier sugerencia.
Si el tema de búsquedas de archivos y de colecciones grandes de estos es todo un tema para discutir largamente.
Sugiero lo siguiente:
  • Limitar el arbol de directorios a solo lo que este "aguas abajo" del directorio de música previamente configurado el el programa.
  • Usar un Treeview y no un Dirview, ya que el treeview te permitirá cambiar el escenario de visualización mas fácilmente, por directorios, por álbumes, por artistas etc.
(16-08-2021, 10:11)Shordi escribió: Supongo que eso se puede conseguir vía alguna web y demás... pero no es algo que me motive mucho... aunque si sabes cómo hacerlo, repito: estoy abierto a sugerencias (para eso está el git ¿no?)
Respecto a la tapa del disco, normalmente se dan dos situaciones, tienes la imagen o no la tienes. Si tienes la imagen que suele estar en el mismo directorio que el archivo de musica, solo basta con cargarla en un control, como un picturebox o un toolbutton y si no la tienes, pues nada, pones una genérica y listo.
Conseguir la tapa de internet es otro cantar.
(16-08-2021, 10:11)Shordi escribió: Muchas gracias por tu ayuda.
De nada, es agradable devolverte algo de toda la ayuda que en todos estos años me has prestado con gambas y también porque espero que le des al botón de  !Gracias por este post! Smile
Saludos.


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - jguardon - 16-08-2021

Creo que he encontrado un recurso bastante útil. Se trata de una API gratuita de LastFM que proporciona casi cualquier metadato relativo a un artista, álbum o canción incluyendo las carátulas (o tapas) de disco. Podría tener algún tipo de limitación para evitar abusos, pero no he visto nada reseñable.

https://www.last.fm/api#getting-started

Lo bueno es que se pueden usar los dos métodos disponibles, XML o JSON, éste último mucho más sencillo de implementar. Por supuesto, montar la clase API en gambas con los métodos de autenticación y las llamadas a los métodos más usuales o necesarios para el programa lleva tiempo y esfuerzo, pero puede merecer la pena al ser reutilizable.

Saludos


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - cogier - 16-08-2021

Puede cambiar el 'Dir' por 'RDir' como se indica a continuación. 
Código:
Private Sub loadFolder (sPath As String)

    Dim adir As String []
    Dim sSong As String
    Dim aExt As String [] = ["mp3", "wav", "ogg"]
    Dim n As Integer

    aDir = RDir (sPath) .Sort ()
    'adir = Dir (sPath) .Sort ()
    For Each sSong In adir
        ' If IsDir (spath & / sSong) Then loadFolder (spath & / sSong) 'Recursion
        If aExt.Exist (LCase (File .ext (Ssong))) Then
            $ Lista.Add ([spath & / Ssong, ""])
        Endif
    Next
    lista.rows.Count = $ lista.Count
    For n = 0 To $ list.

    Next
    List.MoveTo (0, 0)
    list.SetFocus

End

He escrito un programa como este para mí. No iba a publicarlo ya que lo escribí para Linux Mint y, puede que no funcione en otras distribuciones, especialmente el control de volumen que cambia el volumen del sistema. La función de inicio automático también puede causar problemas. Está diseñada para tomar las URLs de YouTube y descargar la música desde allí. Necesitarás instalar 'youtube-dl' para que funcione.

Pensé que podría ser interesante, ya que tiene algunas características que podrían interesar. Puedes usar la rueda del ratón en el 'TrayIcon' para cambiar el volumen. Haz clic en el 'TrayIcon' para iniciar o detener la música. 

Poner algo de música en la carpeta 'MusicYT' para empezar, el programa creará la carpeta si no está allí.
[Imagen: MelodyBox.png]


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - tincho - 16-08-2021

Siguiendo con el feedback, ahora dentro del código.
Me gusto como resolviste lo del evento del Slider ya que usaste Object.Lock yo siempre había resuelto esto prescindiendo del evento "Change" lo cual ahora lineas de código.
Código:
Public Sub Timer1_Timer()
    Object.Lock(posicion)
    posicion.Value = Music.Pos
    Object.Unlock(posicion)
    If Round(Music.Pos) = posicion.MaxValue - 1 Then
        bNext_Click()
    Endif
  End
Saludos.


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - Shordi - 16-08-2021

(16-08-2021, 16:40)tincho escribió: Siguiendo con el feedback, ahora dentro del código.
Me gusto como resolviste lo del evento del Slider ya que usaste Object.Lock yo siempre había resuelto esto prescindiendo del evento "Change" lo cual ahora lineas de código.
Código:
Public Sub Timer1_Timer()
    Object.Lock(posicion)
    posicion.Value = Music.Pos
    Object.Unlock(posicion)
    If Round(Music.Pos) = posicion.MaxValue - 1 Then
        bNext_Click()
    Endif
  End
Saludos.
Es otra opción. Miraré cual va más "suave"

(16-08-2021, 16:16)cogier escribió: Puede cambiar el 'Dir' por 'RDir' como se indica a continuación. 
Código:
Private Sub loadFolder (sPath As String)

    Dim adir As String []
    Dim sSong As String
    Dim aExt As String [] = ["mp3", "wav", "ogg"]
    Dim n As Integer

    aDir = RDir (sPath) .Sort ()
    'adir = Dir (sPath) .Sort ()
    For Each sSong In adir
        ' If IsDir (spath & / sSong) Then loadFolder (spath & / sSong) 'Recursion
        If aExt.Exist (LCase (File .ext (Ssong))) Then
            $ Lista.Add ([spath & / Ssong, ""])
        Endif
    Next
    lista.rows.Count = $ lista.Count
    For n = 0 To $ list.

    Next
    List.MoveTo (0, 0)
    list.SetFocus

End
 ....
Pensé que podría ser interesante, ya que tiene algunas características que podrían interesar. Puedes usar la rueda del ratón en el 'TrayIcon' para cambiar el volumen. Haz clic en el 'TrayIcon' para iniciar o detener la música. 

Poner algo de música en la carpeta 'MusicYT' para empezar, el programa creará la carpeta si no está allí.

Lo de rDir super interesante, lo de la rueda del ratón sobre el trayIcon, lo miraré. Interesante también.
Muchas gracias por los aportes.

Saludos

(16-08-2021, 13:41)jguardon escribió: Creo que he encontrado un recurso bastante útil. Se trata de una API gratuita de LastFM que proporciona casi cualquier metadato relativo a un artista, álbum o canción incluyendo las carátulas (o tapas) de disco. Podría tener algún tipo de limitación para evitar abusos, pero no he visto nada reseñable.

https://www.last.fm/api#getting-started

Lo bueno es que se pueden usar los dos métodos disponibles, XML o JSON, éste último mucho más sencillo de implementar. Por supuesto, montar la clase API en gambas con los métodos de autenticación y las llamadas a los métodos más usuales o necesarios para el programa lleva tiempo y esfuerzo, pero puede merecer la pena al ser reutilizable.

Saludos

Buff, buff... eso que sugieres me supera. En serio... Si te animas, ya sabes: gitlab Big Grin Big Grin Big Grin

Cita:Perfecto, de todos modos, como sabes, en gnome3 no existe donde usar el tryicon.
Mmm... no creo que use nunca gnome3... pero supongo que no es difícil implementar comportamientos distintos según el tipo de escritorio. Le daré una vuelta con una máquina virtual a ver qué se puede hacer.

Saludos.


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - Shordi - 17-08-2021

Tincho:

He modificado el programa de manera que si el escritorio es gnome, no hay trayicon y el programa se comporta como uno "normal", es decir, al iniciar se abre la ventana y al cerrarla se termina el programa. Si me puedes confirmar que funciona bien... conejudo.

Cogier:
He mirado tu programa y está guay, pero el objetivo del trayicon que hacemos es distinto y el trayicon está justo al lado del icono del sonido y éste ya sube y baja el volumen con la rueda... me ha parecido redundante.
Gracias por compartir. hay algunas cositas de tu programa que me guardo para más adelante.

Saludos


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - jguardon - 17-08-2021

(16-08-2021, 18:04)Shordi escribió: Buff, buff... eso que sugieres me supera. En serio... Si te animas, ya sabes: gitlab

Me pondré con ello para alternar y salir de un círculo vicioso en el que ando metido. Estoy intentando crear una clase para dar utilidad a las ecuaciones de Robert Penner relativas a easing (o suavizado de valores vs tiempo) muy útiles para animaciones y cosas así.

Siempre me gusta jugar con las APIs aunque ahora con el rollo de tener que ser todo usando SSL, ya se complica un poco más... Bueno, confiemos en curl dentro de los componentes de gambas.

Saludos


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - Shordi - 17-08-2021

Cita:Estoy intentando crear una clase para dar utilidad a las ecuaciones de Robert Penner relativas a easing (o suavizado de valores vs tiempo) muy útiles para animaciones y cosas así.
[Imagen: HU7whcm.gif]


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - tincho - 17-08-2021

(16-08-2021, 16:16)cogier escribió: He escrito un programa como este para mí. No iba a publicarlo ya que lo escribí para Linux Mint y, puede que no funcione en otras distribuciones, especialmente el control de volumen que cambia el volumen del sistema. La función de inicio automático también puede causar problemas. Está diseñada para tomar las URLs de YouTube y descargar la música desde allí. Necesitarás instalar 'youtube-dl' para que funcione.

Hola Cogier, efectivamente como indicas el control de volumen no funciona en mi escritorio (Gnome3) pero es interesante ver programs de otros para estudiarlos y aprender diferentes formas de abordar las soluciones.
Veo que luego de descargar un archivo de musica de youtube queda un .wav de 50 Mb. modifique el código y obtube un .mp3 de 8Mb
Este es el link youtube: https://youtu.be/tcSCdZbvVNA
Y este es el cambio:
Código:
Shell "cd ~/MusicYT && youtube-dl -x --audio-format 'mp3' --audio-quality 0 --output '%(title)s.%(ext)s' " & Trim(TextBoxDownload.Text) Wait
Saludos.

(17-08-2021, 12:43)Shordi escribió: Tincho:
He modificado el programa de manera que si el escritorio es gnome, no hay trayicon y el programa se comporta como uno "normal", es decir, al iniciar se abre la ventana y al cerrarla se termina el programa. Si me puedes confirmar que funciona bien... conejudo.
  • Si, ahora, cuando cierro el programa termina la canción.
  • Luego da un error al restablecer la configuración cerrar y volver a abrir. el error lo da en la linea 29 Settings.Save() [1]
  • Maldito Splitter Angry
  • ¿Amarillo? De verdad?  Smile
[1] Es que estaba todo amarillo y dije, le aplico la configuración por defecto que seguramente es la misma que los otros programas del escritorio y para mi sorpresa era esa la del fondo amarillo Smile.

Saludos.

(17-08-2021, 20:43)jguardon escribió: Siempre me gusta jugar con las APIs aunque ahora con el rollo de tener que ser todo usando SSL, ya se complica un poco más... Bueno, confiemos en curl dentro de los componentes de gambas.

Si, le eche un vistazo a la API que pasaste de https://www.last.fm/api#getting-started pero hay que loguearse como usuario pero bueno, al final es como la de la AEMET u otras similares.
Saludos.


RE: gbAmp un nuevo reproductor de mp3, wav y ogg - Shordi - 18-08-2021

Cita:
  • Si, ahora, cuando cierro el programa termina la canción.
  • Luego da un error al restablecer la configuración cerrar y volver a abrir. el error lo da en la linea 29 Settings.Save() [1]
  • Maldito Splitter Angry
  • ¿Amarillo? De verdad? 
Vale. Perdón, había omitido algunas líneas y equivocado otras, como es mi costumbre... Blush
Ahora creo que se cierra y abre sin problemas y que establece-reestablece las opciones correctamente.

Ejj que estoy empanao...

Para compensar tus esfuerzos he sustituido el Splitter por un HSplit Big Grin Big Grin

Saludos