少し前の話になりますが、半月くらい前に
Flash CS5 の追加機能であるAIR for Androidで
Android カメラアプリをつくってみました。
一応始めからweb, AIR(PCガジェット), Androidアプリとして
書き出せるようにつくろうということで考えていたので
as3で仕組みさえつくってしまえば後のアプリとしての書き出し等は
そんなに時間はかかりませんでした。が、いろいろと感じたところがあるので
メモとして残そうかと。
経緯:Flashを使った表現の引き出しをいろいろ増やしたいっていうことで
画像編集の部分を実装してみたかった。後はAndroidの実機で何かしらつくりたかった。
という2点から。
1. AIR 2.5 ではモバイル用APIが追加されたそうで、
それがこの②番目のCameraUIです。そもそも
AIRからAndroidでカメラを操作するときには2通りのやり方があり、
①Cameraを使う
デバイスのカメラをビデオにアタッチする方法。
なのでこちらはリアルタイムに映像にエフェクトかけたりできます。
その瞬間を撮るみたいな感じです。ただ、デバイスのカメラを使っていても
ビデオなので解像度がかなり粗く、静止画にするには少し厳しいかなという感じでした。
②CameraUIを使う
デバイスのカメラアプリに切り替え、撮影後、
ローカルに保存された写真データをまたアプリ側に持ってくる、という方法。
撮影部分を既存のアプリに任せるのでズームやオートフォーカス、
フラッシュなども使えてなおかつスマホの高解像度素材が撮れる!という
素晴らしい感じで、今回は静止画からの画像処理がメインのアプリだったので
こちらを使いました。
2. CameraUIとかが認識されない場合(そもそもデバイスじゃないとか)は
分岐処理で普通のカメラを使う(①を使用する)という処理にしておいたので、
PCで見たときにはweb camで①の方式というように実装しており、
一つののファイルで書き出し方式だけ変えてぽこぽこいけると喜んでいたのですが、
実はAIR2.5が入っていないとCameraUIのクラス自体がないのでエラー?というか
使えないみたいで、結局PC分はそこの部分をごそっと抜いてAIR 2.0用のガジェットとして
作り直しました。。ダウンロードしてもらった友人にAIR2.5なんて入ってねーよ!
という指摘を受けて気付きました。。。orz
それでも一から作り直すよりかは全然早く、凄く楽でした。
で、雑感としては先日RETWEETのイベントでも
Clockmakerさんが言っていたのですが、やはり計算処理がちょっと遅く、
もっさりするなぁという印象でした。(もちろん自分のコードがひどいせいです)
それこそ計算処理自体は外部に任せて、グラフィック処理に専念するとか、
違うデバイスや言語の橋渡し役という方が現実的なのかなぁと思いました。
(もちろん自分のコードがひどいせいです2)
今度はネイティブ言語で作るか、先日聞いたMXMLとかを使ってflexで作ってみるか、
他のデバイスや言語との組み合わせに走るか、本来作りたかった第二弾のカメラアプリにいくか、
ちゃんとブラッシュアップしてつくり直すか、iPhone版をつくるか(FlashなのかObj-cなのか)
などなど悩みまくってます。
さて次は何をどうしようかな。
you
補足
とりあえずAIR for Androidとかの開発参考記事は
以下あたりがめちゃめちゃ勉強なりました。
どうもありがとうございました!!