So jetzt geht mal START und PAUSE.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
if pipeline = nil then begin
pipeline := gst_parse_launch('filesrc location=test.mp3 ! mpegaudioparse ! mpg123audiodec ! audioconvert ! audioresample ! pulsesink', nil);
// pipeline := gst_parse_launch('filesrc location=test.flac ! decodebin3 ! audioconvert ! audioresample ! autoaudiosink', nil);
end;
gst_element_set_state(pipeline, GST_STATE_PLAYING);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if pipeline <> nil then begin
gst_element_set_state(pipeline, GST_STATE_PAUSED);
end;
So wie es aussieht, kann man auch ohne Thread arbeiten.
Bei den Lazarus-Sourcen hat es ein Beispiel dabei,m welches ein MP3 ohne das uri Zeugs abspielt.
So wie ich noch festgestellt habe, arbeitet gstreamer auf Basis von glib.
Das wird wohl auch der Grund sein, wieso man viele Propertys mit String übergeben muss.