31
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

一歩先のiOS開発へ!SonyのレンズカメラQX10/100向けライブラリを作った。iPhoneと外部デバイス連携開発その1.

Last updated at Posted at 2014-04-15

by @mixiappwchr

QX10_mainvisual_index.jpg

昨今ウェアラブルデバイスやらiBeaconやらスマホ以外のデバイスが盛り上がってきてますが、今後はより、スマホを起点とした外部デバイスとの連携サービスが益々重要なってくると思います。

そこで、これからスマホと外部デバイスの連携開発を調査できれば思います。

まずは、そのコンセプトの面白さから話題となったSonyのレンズカメラQX10/100との連携をさせてみたいと思います。

このデバイスはコンセプトも面白いですが、何と言ってもAPIが公開されているので夢が膨らみます。

そこでiOS向けのライブラリがなかったので作ってみました。

SonyCameraRemoteAPI

基本的にJSONRPCで扱えるので取り回しは楽なのですが、ちゃんとやるとSSDPでの機器検索やliveプレビューは、生パケットの処理があったりするのでその辺もカバーしました。

まだハンドリングが甘いので調整が必要ですが、例えばカメラから取得した画像をGPUImageで処理するなんてことが可能です

例:プレビュー画像に対してフィルタ処理をかける。

 self.client = [[SonyCameraRemoteAPIClient alloc] init];
    
    
     __weak __typeof(self)weakSelf = self;
    [self.client discoverDevices:^(NSDictionary * result, NSError *error) {
        weakSelf.shootButton.enabled = YES;
        weakSelf.statusLabel.hidden = YES;
        [weakSelf.client captureLiveview:[result objectForKey:@"liveviewstream"] captured:^(NSData *result, NSError *error) {
            UIImage *image = [UIImage imageWithData:result];
            if(!image){
                return;
            }
            dispatch_async(dispatch_get_main_queue(), ^{
                
                GPUImageSwirlFilter *filter = [[GPUImageSwirlFilter alloc] init];
                [filter setAngle:0.3];
                UIImage *filteredImage = [filter imageByFilteringImage:image];
                weakSelf.imageLayer.contents = (id)filteredImage.CGImage;
                
            });
        }];
        
        
    }];

その他、細かい制御もAPIで操作可能なのでぜひ面白いアプリを作ってみてください!

appwchr post

[iOSの開発をする上で絶対に使うべき!外せない!webサービス、開発ツール集]
(http://qiita.com/appwatcher/items/07a3babcb9b6cefb307e)

[iOSでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、フレームワーク、ライブラリのまとめ!]
(http://qiita.com/appwatcher/items/b02255026a3ee6d95142)

[注目のiBeacomなどの波に乗り遅れないために!iOSのBluetooth開発を容易にするライブラリを書きました。]
(http://qiita.com/appwatcher/items/7491beffd7260b713542)

[まだまだあった!iOSの開発を劇的に改善する最新のwebサービス、開発ツール集1]
(http://qiita.com/appwatcher/items/f0024fe2ac34da345f04)

[さらに快適なアプリ開発を!iOSの開発をもっと劇的に改善する最新のwebサービス、開発ツール集2]
(http://qiita.com/appwatcher/items/c15d7311e71b4c2b77f1)

[スパゲッティから脱出!iOS開発における遷移の問題をすっきり解決する便利ルーティングライブラリをご紹介]
(http://qiita.com/appwatcher/items/259e8d13fff0547e90af)

31
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?