Differenze tra le versioni di "Riproduzione dell'audio di radio WEB con le funzioni esterne del API di GStreamer"

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
  
  
Un possibile semplice codice è il seguente:
+
===Uso del plug-in ''playbin''===
 
  Private Const GST_STATE_NULL As Integer = 1
 
  Private Const GST_STATE_NULL As Integer = 1
 
  Private Const GST_STATE_PLAYING As Integer = 4
 
  Private Const GST_STATE_PLAYING As Integer = 4
Riga 10: Riga 10:
 
  Library "libgstreamer-1.0"
 
  Library "libgstreamer-1.0"
 
   
 
   
  <FONT color=gray>' ''gst_init (&argc, &argv)''</font>
+
  <FONT color=gray>' ''gst_init (&argc, &argv)''
 +
' ''Initializes the GStreamer library, setting up internal path lists, registering built-in elements, and loading standard plugins.''</font>
 
  Private Extern gst_init(argc As Integer, argv As Pointer)
 
  Private Extern gst_init(argc As Integer, argv As Pointer)
 
   
 
   
  <FONT color=gray>' ''GstElement * gst_element_factory_make(const gchar *factoryname, Const gchar * name)''</font>
+
  <FONT color=gray>' ''GstElement * gst_element_factory_make(const gchar *factoryname, Const gchar * name)''
 +
' ''Create a new element of the type defined by the given element factory.''</font>
 
  Private Extern gst_element_factory_make(factoryname As String, name As String) As Pointer
 
  Private Extern gst_element_factory_make(factoryname As String, name As String) As Pointer
 
   
 
   
  <FONT color=gray>' ''void g_object_set(gpointer object, const gchar *first_property_name, ...)''</font>
+
  <FONT color=gray>' ''void g_object_set(gpointer object, const gchar *first_property_name, ...)''
 +
' ''Sets properties on an object.''</font>
 
  Private Extern g_object_set(gobject As Pointer, key As String, value As String, nl As String)
 
  Private Extern g_object_set(gobject As Pointer, key As String, value As String, nl As String)
 
   
 
   
  <FONT color=gray>' ''GstStateChangeReturn gst_element_set_state(GstElement *element, GstState state)''</font>
+
  <FONT color=gray>' ''GstStateChangeReturn gst_element_set_state(GstElement *element, GstState state)''
 +
' ''Sets the state of the element.''</font>
 
  Private Extern gst_element_set_state(gstobject As Pointer, state As Integer) As Integer
 
  Private Extern gst_element_set_state(gstobject As Pointer, state As Integer) As Integer
 
   
 
   
  <FONT color=gray>' ''void gst_object_unref(gpointer object)''</font>
+
  <FONT color=gray>' ''void gst_object_unref(gpointer object)''
 +
' ''Decrements the reference count on object .''</font>
 
  Private Extern gst_object_unref(gobject As Pointer)
 
  Private Extern gst_object_unref(gobject As Pointer)
 
   
 
   

Versione delle 16:20, 16 feb 2017

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


Uso del plug-in playbin

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)
' Initializes the GStreamer library, setting up internal path lists, registering built-in elements, and loading standard plugins.
Private Extern gst_init(argc As Integer, argv As Pointer)

' GstElement * gst_element_factory_make(const gchar *factoryname, Const gchar * name)
' Create a new element of the type defined by the given element factory.
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, ...)
' Sets properties on an object.
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)
' Sets the state of the element.
Private Extern gst_element_set_state(gstobject As Pointer, state As Integer) As Integer

' void gst_object_unref(gpointer object)
' Decrements the reference count on 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