その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

プレイ動画を録画&シェアできるゲームアプリ向けSDK『Kamcord』を少々さわってみたメモ

Kamcord は、ゲームの動画を撮ってシェアするための SDK(フレームワーク) です。


基本的な使い方

録画は startRecording / stopRecording メソッドを呼ぶだけ

[Kamcord startRecording];
[Kamcord stopRecording];


で、showView メソッドを呼ぶと、

[Kamcord showView];


下記のような画面が出てきて、録画したプレイ動画のシェア他プレイヤーの動画の閲覧等ができるようになります。



以上。簡単ですね。

自前UIを使う

ここからはニッチな話になってしまいますが、上記の出来合いのビューを使わず、Kamcord サーバ上にアップされた動画のURLだけ取得してゴニョゴニョ、といったことができるのか、それとも隠蔽されててできないのか、というのを調べてみました。



で、結論としては、可能です。



オフィシャルドキュメント内の下記ページに書かれていて、


Using the Kamcord API: Fully Custom UI


KCCustomUI というクラスを使います。


で、この件についてはドキュメントとかサンプルコードが古い、というかメンテされておらず、Web上でもあまり情報がありません。


このあたりに関して、引っかかった点、わかりにくかった点を以下に箇条書きでまとめておきます。

  • KCCustomUI を使用したサンプルの在処と実行方法
    • サンプルプロジェクトから CustomUITest クラスのファイルが外されている。
    • Custom UIのサンプルを試すには、プロジェクトフォルダ配下の tests/CustomUITest.h,m を改めてプロジェクトに追加し、 ターゲットを作成する必要がある。
  • VideoTicketDelegate プロトコルの実装
    • AppDelegate のサブクラスを VideoTicketDelegate に指定すると EXC_BAD_ACCESS エラーになる。
    • CALayer のサブクラスを VideoTicketDelegate に指定すると問題なくなった。
    • 理由/原因は不明。
  • 動画URLの取得
    • KCVideoTicket クラスの getVideoURL メソッドで得られる URL は、Base URL が省かれている。
    • 同クラスの thumbURL プロパティから得られる結果で、Base URL は https://s3.amazonaws.com と判明(実際にこれで動画にアクセスできた)


また何か出てきたら追記します。


(2013.8.29追記)Kamcord から学んだこと

『Kamcord』をつかってみた際に得た一番の収穫は、「あ、これでいいんだ」という感覚です。


たとえば、

  • デベロッパーとしてサインアップすると、APIKey がメールで飛んでくるだけ。(ダッシュボードとかない)
  • DownloadページもDocumentationページも、GitHub の wiki に飛ばされる。(サイト内でかっこよくドキュメントを表示したりとかしない)

とか。


Kamcord は最近100万ドルを調達しましたが、これぐらい開き直ってコア機能に集中していいんだなと。


そんなわけで、これを見て AppSocially の iOS SDK も、GitHubをベースに諸々整えていく方針にしました。


appsocially/AppSocially-iOS-SDK


今までは配布用 zip を新しいバージョンに差し替えたい場合や、ドキュメントを更新したい場合にはチケット切ってサーバーサイド担当者に依頼してたのですが、これで自分のペースでどんどん更新できるようになって、すごく快適になりました。(追記終わり)