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
|
#!/usr/bin/env ruby
# coding: utf-8
unless file = ARGV.shift
puts "Usage: #{$0} <media file>"
exit(false)
end
unless %w(gtk3 gtk2).find{|l| begin; require l; rescue LoadError; false; end}
puts "This sample requires gtk3 or gtk2."
exit(false)
end
require 'gvlc'
player = VLC::MediaPlayer.new(path: file)
window = Gtk::Window.new
view = Gtk::DrawingArea.new
window.add(view)
window.signal_connect(:destroy){Gtk.main_quit}
view.signal_connect(:realize) do |widget|
player.xwindow = widget.window.xid
end
player.attach_event(:mediaplayer_playing) do |player, event|
size = player.get_size(0)
view.set_size_request(*size) if size
end
window.show_all
player.play
Gtk.main
|