Riproduzione dell'audio di radio WEB con le funzioni esterne del API di GStreamer

Da Gambas-it.org - Wikipedia.

Le stazioni radio via WEB possono essere ascoltate utilizzando le risorse del API di GStreamer.


Un possibile semplice codice è il seguente:

Private Const GST_STATE_NULL As Integer = 1
Private Const GST_STATE_PLAYING As Integer = 4

Private play As Pointer

Library "libgstreamer-1.0"

' gst_init (&argc, &argv)
Private Extern gst_init(argc As Integer, argv As Pointer)

' GstElement * gst_element_factory_make(const gchar *factoryname, Const gchar * name)
Private Extern gst_element_factory_make(factoryname As String, name As String) As Pointer

' void g_object_set(gpointer object, const gchar *first_property_name, ...)
Private Extern g_object_set(gobject As Pointer, key As String, value As String, nl As String)

' GstStateChangeReturn gst_element_set_state(GstElement *element, GstState state)
Private Extern gst_element_set_state(gstobject As Pointer, state As Integer) As Integer

' void gst_object_unref(gpointer object)
Private Extern gst_object_unref(gobject As Pointer)


Public Sub Form_Open()

Dim retI As Integer

 gst_init(0, 0)

 play = gst_element_factory_make("playbin", "play")

' Nel terzo argomento della seguente funzione va inserito
' l'indirizzo web del flusso di dati audio in tempo reale:
 g_object_set(play, "uri", "http://indirizzo/web/del/flusso/dati/della/radio4-web", Null)

' Avviamo la riproduzione audio della radio-web:
 retI = gst_element_set_state(play, GST_STATE_PLAYING)
 Print "Stato di cambiamento = "; retI

End


Public Sub Button1_Click()

Dim retI As Integer

' Arrestiamo la riproduzione audio:
 retI = gst_element_set_state(play, GST_STATE_NULL)
 Print "Stato di cambiamento = "; retI
  
 gst_object_unref(play)

End