Hatena::ブログ(Diary)

山本大の日記 RSSフィード Twitter

株式会社レベルエンター(http://levelenter.com/)で、プログラミングを若手に教える仕事をメインにやっています。

2011-11-07

iPhone/iPadシュミレーターのカメラロールに動画を登録する方法

iPadの動画アプリを作ってるんだけど、iPhone/iPadシュミレーターを使っているとカメラロールに動画が登録できなくて困る。
普通の方法ではできないっぽいが、ちょっと裏技っぽい方法を編み出したので紹介する。

1.準備) 動画ファイルを作る。

iPhone/iPadで読める動画(~.MOVとか)を、なんかしら作ってください。

2.準備) Finderユーザライブラリディレクトリを表示しておく。

Lionから表示されなくなったらしいけど、Finderに/Users/ユーザの名前/Libraryが表示されていない。
表示しておくと開発に何かと便利なので表示しよう。

  1. ターミナルをひらく。
  2. 以下のコマンドをうつ。

chflags nohidden ~/Library/


3.配置) 動画をシュミレータのメディアディレクトリに配置

Finderなら以下のたどり方

/ユーザ
 → <ユーザ名>
  → ライブラリ
   → Application Support
    → iPhone Simulator
     → <iOSバージョン>
      → Media


ターミナルなら

/Users/<username>/Library/Application Support/iPhone Simulator/<iOSVersion>/Media

*1


ここに以下のディレクトリがあればその配下に移動、なければ作ってください。
DCIM → 100APPLE

最終的には「100APPLE」ディレクトリが以下のような位置にあればOK

/Users/<username>/Library/Application Support/iPhone Simulator/<iOSVersion>/Media/DCIM/100APPLE/


で、ここに画像やら動画やらをコピーしておきます。

4.削除) カメラロールのメタ情報の削除

これだけでは、シュミレータのカメラロールは認識してくれません。
iOS管理するSqliteやplistに書き込まないといけないのです。
とはいえ、これらの構造を理解してSQLをうつのも面倒なので、ちょっと荒技ですが一旦消してしまって、iOSに再構築してもらいましょう。

先ほどのMediaと同じ階層にPhotoDataというディレクトリがあります。

/Users/<username>/Library/Application Support/iPhone Simulator/<iOSVersion>/PhotoData


この中身を思い切ってばっさり削除してしまってください。(気になるならどっかにコピっておきましょう)

5.再構築) カメラロール再構築のため画面ハードコピーを撮る

シュミレータ側でカメラロールが再構築をするために、以下の作業をしてください。

  1. 一旦カメラロールのインスタンスを消す*2
  2. 再構築のきっかけを与えるため画面のハードコピーを撮る(シュミレータ上で、コマンド+S)*3

これで、カメラロールが復元され、DCIM/100APPLEに保存した画像、動画が読み込まれるはず。

5.0では確認しました。
あとは自己責任でどうぞよろしく。

おしまい

*1:僕の環境では/Users/daiyamamoto/Library/Application Support/iPhone Simulator/5.0/Media/DCIM/100APPLE/となります。

*2:シュミレータ上でホームボタンを2回押して、実行中のアプリのインスタンスを表示、うち一つを長押しして削除アイコンを表示し、カメラロールのインスタンスを削除

*3:カメラロールに新規の画像が入れば何でもよいからSafariなどで画像保存してもOK

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/iad_otomamay/20111107/1320644541
リンク元