1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#! /usr/bin/env lua
--
-- Sample GStreamer application, port of public Vala GStreamer Audio
-- Stream Example (http://live.gnome.org/Vala/GStreamerSample)
--
local lgi = require 'lgi'
local GLib = lgi.GLib
local Gst = lgi.Gst
local main_loop = GLib.MainLoop()
local function bus_callback(bus, message)
if message.type.ERROR then
print('Error:', message:parse_error().message)
main_loop:quit()
elseif message.type.EOS then
print 'end of stream'
main_loop:quit()
elseif message.type.STATE_CHANGED then
local old, new, pending = message:parse_state_changed()
print(string.format('state changed: %s->%s:%s', old, new, pending))
elseif message.type.TAG then
message:parse_tag():foreach(
function(list, tag)
print(('tag: %s = %s'):format(tag, tostring(list:get(tag))))
end)
end
return true
end
local play = Gst.ElementFactory.make('playbin', 'play')
play.uri = 'http://ice1.somafm.com/dronezone-128-mp3'
--play.uri = 'http://www.cybertechmedia.com/samples/raycharles.mov'
play.bus:add_watch(GLib.PRIORITY_DEFAULT, bus_callback)
play.state = 'PLAYING'
-- Run the loop.
main_loop:run()
play.state = 'NULL'
|