ONScripter(4)
avi ファイル再生。
いろいろ考えてみましたが、Raspberry Pi OS の avifile で動画再生は難しいと思いました。そこで、Xkanon でも使っている mplayer を利用して再生を試みることにしました。
修正・追加が必要になりますがちょっと腰を据えてやってみます。mplayer はオプションで wid を指定して、指定した ID のウィンドウに描画します。そこで、SDL でウィンドウ ID を取得する方法を探したら、https://wtetsu.hatenablog.com/entry/20080125/1201098760
が見つかりました。
#include <SDL_syswm.h>
SDL_SysWMinfo wmInfo;
SDL_GetWMInfo(&wmInfo);
HWND hwnd = wmInfo.window;
システム情報の中に Windows のハンドルがあります。
SDL_SysWMinfo は、
http://sdl.beuc.net/sdl.wiki/SDL_SysWMInfo
に説明があり、メンバの window は X11 では Window (つまり、X11 の WindowID)であることがわかります。
USE_AVIFILE の定義の代わりに USE_MPLAYER を定義することにして、mplayer 用にソースを修正・追加します。ただし、アーカイブ内の動画再生には未対応となります。
手持ちのゲームの中で avi を使っているのはねこねこソフトの朱だけですが、これで朱も普通にプレイできるようになりました。
ただ、system() 関数で mplayer を起動しているせいか、マウスやキーボードのイベントが mplayer に渡らないようで、動画のスキップはできませんでした。fork して exec とかで動かせばいいんだとは思いますが、そこまでするつもりはありません。
ディスカッション
コメント一覧
まだ、コメントがありません