サイログ。

~雑多な記事置き場~

Miyako::Movieクラスは「確実な動作を保証しない」という認識でお願いします

昨日、Ruby/Rails勉強会@関西が行われて、僕もスピーカーとして参加したのですが、
そのときにohaiさんから「Ruby/SDLで動画再生するときは、入力操作も併せて
行うと、ネイティブスレッド周りで危険な動作をするので止めた方がいいよ」という
話を伺いました。

とはいえ、以下のテストプログラムを組んで試してみましたが、
今のところおかしい動作は確認できませんでした。
(露見しなかっただけかも知れませんが・・・)

@spr1 = Miyako::Sprite.new("spr1.png")
@spr1.dp = 200
@spr1.show

@spr2 = Miyako::Sprite.new(Miyako::Size.new(360, 240), nil) # 動画ファイルと同じ解像度
@spr2.dp = 100
@spr2.show

@mov1 = Miyako::Movie.new(@spr2, "movie1.mpg")
@mov1.play

loop do
  Miyako::Input.update
  break if Miyako::Input.quit? || Miyako::Input.pushed_any?(:esc)
  dx, dy = Miyako::Input.triggerAmount
  @spr1.move(dx*4, dy*4)
  Miyako::Screen.update
end

勉強会での反応も上々だったので、このまま廃止するのは勿体ないな・・・。

なので、次のv1.4.4では、Movie関係は、重要な更新点を指す赤文字から黒文字に
変えて、後ろに(確実な動作を保証しない)と付け加えます。
また、v1.4.3でもこの立場で居ることにします。

あ、そうそう、Movie#playメソッドで動画再生を始めたら、少なくとも数ミリ秒は
停止・一時停止をしないほうが良さそうですね。