vuott   24-11-2023, 11:43
#1
Hola,
os dejo este codigo para obtener un reproductor de audio, útil para escuchar radio-web, archivos de audio y vídeo, con muestra de eventuales Metadatos y de un simple Espectroscopio, basado en los recursos del sistema audio "GStreamer".
Por lo tanto, es necesario activar el componente "gb.media".
Código:
Private TextArea1 As TextArea
Private DrawingArea1 As DrawingArea
Private ToggleButton1 As ToggleButton
Private mp As MediaPlayer
Private Meta As New Collection
Private ss As New String[]


Public Sub Form_Open()
  
  Me.Resize(Screen.AvailableWidth * 0.33, Screen.AvailableHeight * 0.73)
  
  With TextArea1 = New TextArea(Me)
    .X = Me.W * 0.02
    .Y = Me.H * 0.02
    .W = Me.W * 0.96
    .H = Me.H * 0.4
  End With
  With DrawingArea1 = New DrawingArea(Me)
    .X = Me.W * 0.02
    .Y = Me.H * 0.43
    .W = Me.W * 0.96
    .H = Me.H * 0.46
  End With
  With ToggleButton1 = New ToggleButton(Me) As "ToggleButton1"
    .W = Me.W * 0.3
    .X = (Me.W * 0.5) - (.W / 2)
    .Y = Me.H * 0.9
    .H = Me.H * 0.08
    .Foreground = Color.Green
    .Text = "Ejecuta"
  End With
  
End


Public Sub ToggleButton1_Click()

 If ToggleButton1.Value Then
   Dim plugVis As MediaControl
   Dim tipoPlug As String[] = ["goom", "monoscope", "spacescope",
                               "spectrascope", "synaescope", "wavescope"]
   TextArea1.Clear
   With mp = New MediaPlayer As "MediaPlayer1"
     plugVis = New MediaControl(mp, tipoPlug[3])
     .SetWindow(DrawingArea1)
' Escuchamos una radio-web....
     .URL = "https://icy.unitedradio.it/VirginRock70.mp3"
' Si queremos ejecutar un archivo de audio o de vídeo tendremos que sustituir la línea anterior por esta:
'    .URL = Media.URL("/ruta/del/archivo/audio/o/video")
     .Play
     .Video.Visualisation = plugVis
   End With 
   ToggleButton1.Foreground = Color.Red
   ToggleButton1.Text = "Stop"
 Else
   mp.Stop
   mp.Close
   ToggleButton1.Foreground = Color.Green
   ToggleButton1.Text = "Ejecuta"
 Endif

End


Public Sub MediaPlayer1_Tag(tagList As MediaTagList)

 For Each tag As String In tagList.Tags
   If Not Meta.Exist(tag) Then
     Meta[tag] = tagList[tag]
     ss.Push(tag)
     ss.Push(tagList[tag])
   Else
     ss[ss.Find(tag) + 1] = tagList[tag]
   Endif
 Next

 TextArea1.Clear
 For c As Short = 0 To ss.Max Step 2
   TextArea1.Text &= ss[c] & ":    " & ss[c + 1] & gb.NewLine
 Next

End


Public Sub MediaPlayer1_Position()
 
 Me.Title = Str(Time(0, 0, 0, mp.Pos * 1000))
 
End


Public Sub MediaPlayer1_End()

 ToggleButton1.Value = False
  
End
Última modificación: 06-12-2023, 13:47 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shell   24-11-2023, 13:38
#2
En cuanto a sonido no he pasado del gb.sdl2.audio.

Muy chulo el espectroscopio y la presentación de los metadatos.
Cuando lo puse, sonaba la canción "Riders on the Storm" de Door. Chulisima.

Buen canal musical.

¿ Has llegado a usar/probar el gb.media.form ?. Si que tiene cosas el media player.
 
Cita: 
This component provides a media player control, and aims at providing other control based on gb.media in the future.



Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   25-11-2023, 00:11
#3
(24-11-2023, 11:43)vuott escribió: útil para escuchar radio-web

Muy buen código Vuott.
Veo que usas el evento TAG que me explicaste antes, muy útil.
[code]
El goom2k1 también esta bien.

1 Saludo.
vuott   25-11-2023, 01:11
#4
(25-11-2023, 00:11)tincho escribió: El goom2k1 también esta bien.

Sì, es asì.

(24-11-2023, 13:38)Shell escribió: ¿ Has llegado a usar/probar el gb.media.form ?

Consul,
gb.media.form no ofrece una Clase versátil de 'bajo nivel' como la Clase 'MediaPlayer' (o incluso mejor: MediaPipeline) del Componente 'gb.media'.
Nunca uso el Componente 'gb.media.view', aunque lo he estudiado un poquito:
https://www.gambas-it.org/wiki/index.php...media.form
Última modificación: 25-11-2023, 01:19 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.