swfmillで携帯Flashを動的に生成

linux, サーバー関連 2011年2月20日,

たまにはソーシャルアプリネタ。

携帯で使われるFlash Liteはいろいろ制限があって外部ファイルを使って動的にFlashを作る事が出来ない。
そこでアクセスの度にサーバー内部でFlashを動的に毎回作成するといった事で対処させる必要がある。

このswfmillはswf⇔xmlの相互変換が出来る。
swfからxmlに変換してxmlをphpなどで書き換えてまたswfに戻すといった手順。
(ただこの変換も文字コードの問題でいろいろとややこしい事になります・・・)

K-LABさんが公開している
「swfmillでFlash Lite 1のswfを扱えるようにしてみた」
http://dsas.blog.klab.org/archives/51174693.html
のパッチをあてるとFlash lite 1.xでもswfmillにて使用が可能なのでこのパッチも当てます。

2011/02/20現在swfmillは最新で0.3.1ですがこのパッチがswfmill-0.2.12を元に作られているので
swfmill-0.2.12を使います。

ちなみに今回使用したOSはCentOSです。

swfmill-0.2.12のインストール+swfmillのswf内テキストエンコーディング指定オプション追加パッチ


1
2
3
4
5
6
7
8
9
wget http://swfmill.org/pre/swfmill-0.2.12.2.tar.gz
tar xzf swfmill-0.2.12.2.tar.gz
mv swfmill-0.2.12.2 swfmill-0.2.12
cd swfmill-0.2.12
wget http://lab.klab.org/files/flash/encoding.patch
patch -p1 < encoding.patch
./configure
make
make instal

make途中でこんなエラーが出ました

1
2
3
4
5
6
7
8
9
10
swft_css.cpp  -fPIC -DPIC -o .libs/libswft_la-swft_css.o
swft_css.cpp: In function 'void swft_unit(xmlXPathParserContext*, int)':
swft_css.cpp:197: error: 'strcmp' was not declared in this scope
make[3]: *** [libswft_la-swft_css.lo] エラー 1
make[3]: ディレクトリ `/usr/local/src/swfmill-0.2.12/src/swft' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/usr/local/src/swfmill-0.2.12/src' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/usr/local/src/swfmill-0.2.12/src' から出ます
make: *** [all-recursive] エラー 1

gccのバージョンによるエラーだそうなので

1
2
src/swft/swft_css.cpp
src/swft/swft_import_mp3.cpp

に#include を追記するとOKでした。

実行


1
swfmill

実行したら以下のエラーが出たので

1
2
swfmill: error while loading shared libraries: libswft.so.0: cannot open
shared object file: No such file or directory

/etc/ld.so.confに/usr/local/libがある事を確認して共有ライブラリの再作成
を行うとうまくいきました。

1
/sbin/ldconfig

結果


1
2
3
swfmill
swfmill 0.2.12.2
     XML-based SWF (Shockwave Flash) processing tool

おk

2 Responses to “swfmillで携帯Flashを動的に生成”

  1. tiffany リング Says:

    そなーブログ » Blog Archive » swfmillで携帯Flashを動的に生成

  2. ポロシャツ 通販 Says:

    [ウェットスーツ] ポロシャツ 通販 http://www.taobao8813.com/

コメントどうぞ