2011年10月16日

[ruby-list:48473] Re: Ruby/Gstreamer for Windows

> http://pub.cozmixng.org/~kou/archives/ruby-gnome2-1.0.4.zip
ありがとうございます!
早速drawing_area.window.handle試してみました。

box = Gtk::VBox.new
drawing_area1 = Gtk::DrawingArea.new
drawing_area1.set_size_request(400, 300)
drawing_area2 = Gtk::DrawingArea.new

drawing_area2.set_size_request(400, 100)
box.pack_start(drawing_area1, false, false, 0)
box.pack_start(drawing_area2, false, false, 0)
window.add(box)
drawing_area2.signal_connect('expose-event') do
p [drawing_area1.window.handle, drawing_area2.window.handle]
p Win32API.new('user32', 'GetForegroundWindow', [], 'N').call
video_sink.xwindow_id = drawing_area2.window.handle
end

これでwin32apiを使わずにvideoストリームをGTK2で作成したウィンドウで
表示することはできました!

が、、、残念ながら狙ったエリア(上記の場合drawing_area2)にではなく
ウィンドウ全体にvideoが表示されました。

デバッグ文の結果を見ると、
p [drawing_area1.window.handle, drawing_area2.window.handle]
p Win32API.new('user32', 'GetForegroundWindow', [], 'N').call
三つとも同じ番号(ハンドル)を表示していました。

どうやらwindow.handleはwindow.xidとは異なり、widget毎のユニークな
番号ではないみたいです。。。

うーん。とすると、win32apiを使わずに済むのでwindow.handleの
サポートはとてもありがたいのですが。なんとか、OSSbuildの時のように、
ウィンドウを手でリサイズしてもビデオの画面サイズが変わらないで
いてくれるようにはなりませんでしょうか。

ashbb

--0015173fef08fe4c2504af640f5c--


投稿者 xml-rpc : 2011年10月16日 14:50
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108004
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。