2009/10/05
flashでmp3をzipで固めたのを読みこんで再生
SE系の、小さなMP3ファイルをたくさん読みこむ時は、zipにまとめたほうがスマートかな、と思い、やってみました。
zipを動的に読み込み、zip内のmp3ファイルをリストアップし、Soundクラスとして扱えるようにします。
リストをクリックすると、音が出ます。
Flash内でのzip解凍は、FZipというライブラリを使ってます。
このライブラリは、普通のzipファイルは読み込めず、Alder32っていうchecksumを足す必要があるようです。僕もよく分かってないのですが、FZipのサイトにPythonのスクリプトが落ちてるので、無心にそれを実行するとよいです。
音源は、SLNさんの公開している、General Audio Serviceでダウンロードできるmp3をzipで固めたものを、読み込んでます。
また、zipから取り出したmp3をいったんByteArrayに取り込んで、Soundクラスとして生成し直すまでのプロセスは、MP3FileReferenceLoaderLibを使わせてもらいました。これはバイナリを何かゴニョゴニョしていていて、神すぎて全く分からないのですが、FilreReferenceからmp3を読み込むようになってたのを、zip経由で読み込むようにしたり、メモリを使いすぎないようにしたりしていたら、いろいろ変わってしまったので、畏れ多くも、com.kampei以下に入れときました。
(そういう自由なライセンスだと読めたんだけど、どうだろう...)
やってみたのはいいのですが、思った以上にメモリを食い、実用性を疑っています。
普通にMP3を読み込んだ方がメモリ負荷は軽いのかな???
ソースです。Pythonのスクリプトとかも、モロモロ入ってます。もはやライブラリの組み合わせでしかないけど...