Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

gbAmp un nuevo reproductor de mp3, wav y ogg
#11

(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.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shordi
    ¡Gracias!
#12

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

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
[-] Los siguientes 2 usuarios dicen gracias a jguardon por este post:
  • Shordi, tincho
    ¡Gracias!
#13

Puede cambiar el 'Dir' por 'RDir' como se indica a continuación. 
GAMBAS
  1. Private Sub loadFolder (sPath As String)
  2.  
  3.     Dim adir As String []
  4.     Dim sSong As String
  5.     Dim aExt As String [] = ["mp3", "wav", "ogg"]
  6.     Dim n As Integer
  7.  
  8.     aDir = RDir (sPath) .Sort ()
  9.     'adir = Dir (sPath) .Sort ()
  10.     For Each sSong In adir
  11.         ' If IsDir (spath & / sSong) Then loadFolder (spath & / sSong) 'Recursion
  12.         If aExt.Exist (LCase (File .ext (Ssong))) Then
  13.             $ Lista.Add ([spath & / Ssong, ""])
  14.         Endif
  15.     Next
  16.     lista.rows.Count = $ lista.Count
  17.     For n = 0 To $ list.
  18.  
  19.     Next
  20.     List.MoveTo (0, 0)
  21.     list.SetFocus
  22.  



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]


Archivos adjuntos
.gz MelodyBox-0.4.8.tar.gz Tamaño: 18.6 KB  Descargas: 2
[-] Los siguientes 2 usuarios dicen gracias a cogier por este post:
  • Shordi, tincho
    ¡Gracias!
#14

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.
GAMBAS
  1. Public Sub Timer1_Timer()
  2.     Object.Lock(posicion)
  3.     posicion.Value = Music.Pos
  4.     Object.Unlock(posicion)
  5.     If Round(Music.Pos) = posicion.MaxValue - 1 Then
  6.         bNext_Click()
  7.     Endif
  8.   End


Saludos.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shordi
    ¡Gracias!
#15

(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.
GAMBAS
  1. Public Sub Timer1_Timer()
  2.     Object.Lock(posicion)
  3.     posicion.Value = Music.Pos
  4.     Object.Unlock(posicion)
  5.     If Round(Music.Pos) = posicion.MaxValue - 1 Then
  6.         bNext_Click()
  7.     Endif
  8.   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. 
GAMBAS
  1. Private Sub loadFolder (sPath As String)
  2.  
  3.     Dim adir As String []
  4.     Dim sSong As String
  5.     Dim aExt As String [] = ["mp3", "wav", "ogg"]
  6.     Dim n As Integer
  7.  
  8.     aDir = RDir (sPath) .Sort ()
  9.     'adir = Dir (sPath) .Sort ()
  10.     For Each sSong In adir
  11.         ' If IsDir (spath & / sSong) Then loadFolder (spath & / sSong) 'Recursion
  12.         If aExt.Exist (LCase (File .ext (Ssong))) Then
  13.             $ Lista.Add ([spath & / Ssong, ""])
  14.         Endif
  15.     Next
  16.     lista.rows.Count = $ lista.Count
  17.     For n = 0 To $ list.
  18.  
  19.     Next
  20.     List.MoveTo (0, 0)
  21.     list.SetFocus
  22.  


 ....
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.

No podemos regresar
    ¡Gracias!
#16

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

No podemos regresar
    ¡Gracias!
#17

(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

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
[-] Los siguientes 1 usuarios dice gracias a jguardon por este post:
  • Shordi
    ¡Gracias!
#18

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]

No podemos regresar
    ¡Gracias!
#19

(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:
GAMBAS
  1. 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.
    ¡Gracias!
#20

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

No podemos regresar
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)