プレイ動画を録画&シェアできるゲームアプリ向け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 を新しいバージョンに差し替えたい場合や、ドキュメントを更新したい場合にはチケット切ってサーバーサイド担当者に依頼してたのですが、これで自分のペースでどんどん更新できるようになって、すごく快適になりました。(追記終わり)