AV Foundationの登場により、OS Xでは今までQuickTimeが担当していたメデイア処理が一新されました。このフレームワークでは、プログラムからメデイアデータを制御するためにObjective-Cのインターフェイスが採用されています。そのためUIKitとの親和性が高く、メディアファイルの内容チェック、作成、編集、再エンコードなどが簡単に行えます。また映像の再生や録画中においても、表示されたフレーム画像に対してリアルタイムでフィルタ処理などを行うことが可能です。本アプリと書籍では多くのサンプルソースコードを紹介しながらAV Foundationの詳細を解説いたします。
著者:有限会社オッティモ 小池邦人
書籍はePubドキュメントです。本文については、iPad版 iBooksのテーマが「フルスクリーン」、フォント種類が「ヒラギノ明朝」、フォントサイズが「下から3番目」に合わせてレイアウトされています。その設定に変更してからiPadを縦向きにしてお読みください。Mac版 iBooksで読まれる場合には、表示を「単一ページ」に設定してください。
一度登録してしまえば、本文中に設定されているハイパーリンク経由でアプリの指定したデモを起動することが可能です。アプリを起動するハイパーリンクは先頭に「★」が付いています。その箇所のタップでアプリが起動され、リンク先に記載されているデモ内容が実行されます。アプリからはツールバーの「ビューアへ」ボタンをタップすることでiBooksへ戻ることが出来ます。
サンプルソースコードプロジェクトの開発環境はXcode 5です。ビルドして実機にインストールする場合には、Xcodeのプロジェクトターゲット(TARGETS)のGeneralで表示される「Build Identifier」と、Build Settingsの「Code Signing Identity」を正しく再設定してください。アプリの起動対象はiOS 6.0以上であり、iOS 7.0でも問題なく動作させることができます。
「UIK」… UIKitを用いたデモを示しています。
「AV」….. AVFoundation用いたデモを示しています。
「COI」… AVFoundationとCore Imageを用いたデモを示しています。
「OGL」… AVFoundationとOpenGL ESを用いたデモを示しています。
UIK1ViewController ….(A)UIK1 写真や映像を得る
UIK2ViewController ….(B)UIK2 写真や映像を撮影(シミュレータ不可)
UIK3ViewController ….(C)UIK3 映像の再生と編集
AV01ViewController ….(D)AV01 音声の録音と再生(シミュレータ不可)
AV02ViewController ….(E)AV02 プロパティの取得
AV03ViewController ….(F)AV03 2つの映像の再生
AV04ViewController ….(G)AV04 ウェブ映像の再生(Apple社のデモURL使用)
AV05ViewController ….(H)AV05 サムネイルを得る
AV06ViewController ….(I)AV06 複数のサムネイル
AV07ViewController ….(J)AV07 3映像をつなげる
AV08ViewController ….(K)AV08 映像のワイプ編集
AV09ViewController ….(L)AV09 画像との合成処理
AV10ViewController ….(M)AV10 編集映像書き出し
AV11ViewController ….(N)AV11 ワイプの書き出し
AV12ViewController ….(O)AV12 合成映像書き出し
AV13ViewController ….(P)AV13 複数画像から映像(シミュレータ不可)
AV14ViewController ….(Q)AV14 映像のカラー調整(シミュレータ不可)
AV15ViewController ….(R)AV15 写真の撮影を行う(シミュレータ不可)
AV16ViewController ….(S)AV16 映像の録画を行う(シミュレータ不可)
COI1ViewController ….(T)COI1 画像フィルタ処理(シミュレータ不可)
COI2ViewController ….(U)COI2 映像の顔認識処理(シミュレータ不可)
OGL1ViewController ….(V)OGL1 ビデオ映像を活用(シミュレータ不可)
OGL2ViewController ….(W)OGL2 Movie映像を活用(シミュレータ不可)
「PlayerView」映像アセット表示用のビュークラス
「StreamPlayerView」Web上の映像アセット表示用のビュークラス
【ご注意】サンプルソースコードの使用権利はフリーです。使えるようであれば、ご自身のソースファイルへコピー&ペースしてご利用ください。ただし、その結果として発生した事象に対しては責任は負いかねますのでご了承ください。