File: simple.rb

package info (click to toggle)
ruby-gnome 4.2.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 26,648 kB
  • sloc: ruby: 67,701; ansic: 67,431; xml: 350; sh: 201; cpp: 45; makefile: 42
file content (33 lines) | stat: -rw-r--r-- 687 bytes parent folder | download | duplicates (5)
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