MOSA Multi-OS Software Artists

MOSAはソフトウェア開発者を支援します

MOSA「iOS基礎技術入門シリーズ」トップへ戻る

AV Foundation 入門

  
 

「AV Foundation 入門」概要

AV Foundation 入門」には、iOSのAV Foundationフレームワークに関するサンプルアプリのXcode 5プロジェクトと、それを解説した入門書籍(iBooks対応 99ページのePubファイル)が含まれています。これにより、サンプルアプリ、iBooks用の入門書籍、ソースコードの3点を活用しながらAV Foundationの使用方法を習得できます。書籍やサンプルの解説内容はiOS 6までの機能となっていますのでご注意ください。サンプルアプリの開発環境はXcode 5で、起動環境はiOS 6.0以上が搭載されたiPadiPad AiriPad miniとなります。

「AV Foundation 入門」目的

iOSデバイスでは高品質な写真や映像を簡単に撮影できるため、メディアデータを手軽に扱うアプリがどんどん増えています。斬新なアイデアを組み込んだメディア処理アプリを開発するのには、iOSにおけるAV Foundationフレームワークの能力を十分に把握する必要があります。AV FoundationはiOS 4.0とOS X 10.7(Lion)から利用可能になったフレームワークであり、タイムベースのオーディオやビジュアルデータの作成、記録、再生などに活用できます。

AV Foundationの登場により、OS Xでは今までQuickTimeが担当していたメデイア処理が一新されました。このフレームワークでは、プログラムからメデイアデータを制御するためにObjective-Cのインターフェイスが採用されています。そのためUIKitとの親和性が高く、メディアファイルの内容チェック、作成、編集、再エンコードなどが簡単に行えます。また映像の再生や録画中においても、表示されたフレーム画像に対してリアルタイムでフィルタ処理などを行うことが可能です。本アプリと書籍では多くのサンプルソースコードを紹介しながらAV Foundationの詳細を解説いたします。
 
著者:有限会社オッティモ 小池邦人

「AV Foundation 入門」書籍の章立て

(1) はじめに
(2) アプリ連携やサンプルソースコードについて
(3) AV Foundation関連の技術資料を入手する
(4) AV Foundationを直接使わないメディア処理
(5) AV Foundationにおけるアセットについて
(6) 時間とメディアデータの参照
(7) アセットの再生
(8) アセットからサムネイルを得る
(9) アセットの編集
(10)アセットを書き出す(Export)
(11)アセットを作成する(Import)
(12)映像のフレーム処理
(13)キャプチャセッション
(14)ビデオ映像のレコーディング
(15)ビデオ映像とCore Image
(16)ビデオ映像とOpenGL ES
(17)Movie映像とOpenGL ES
(18)関連処理についての補足説明
(19)Apple社のサンプルソースコード

サンプルアプリの利用方法

XcodeプロジェクトをビルドしてサンプルアプリをiPadにインストールします。アプリが起動したら、まず最初にポップオーバーに表示されたiBooksアイコンをタップし、iBooks側に「AV Foundation 入門」書籍をインストールしてください。インストールが完了するとiBooksが起動して書籍がオープンされます。iPadにiBooksがインストールされていない場合には、App Store経由で先んじてiBooksを入手しておく必要があります。サンプルアプリをiOSシミュレータで起動した場合いは、iBooksが起動できないなど幾つかの機能が制限されますので、ご注意ください。

書籍は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でも問題なく動作させることができます。

サンプルアプリにおけるデモの種類

(A)UIK1 写真や映像を得る
(B)UIK2 写真や映像を撮影
(C)UIK3 映像の再生と編集
(D)AV01 音声の録音と再生
(E)AV02 プロパティの取得
(F)AV03 2つの映像の再生
(G)AV04 ウェブ映像の再生
(H)AV05 サムネイルを得る
(I)AV06 複数のサムネイル
(J)AV07 3映像をつなげる
(K)AV08 映像のワイプ編集
(L)AV09 画像との合成処理
(M)AV10 編集映像書き出し
(N)AV11 ワイプの書き出し
(O)AV12 合成映像書き出し
(P)AV13 複数画像から映像
(Q)AV14 映像のカラー調整
(R)AV15 写真の撮影を行う
(S)AV16 映像の録画を行う
(T)COI1 画像フィルタ処理
(U)COI2 映像の顔認識処理
(V)OGL1 ビデオ映像の活用
(W)OGL2 Movie映像の活用

サンプルアプリのソースコードについて

サンプルソースコードの実行環境は、ビューコントローラのクラス定義(.h)とクラス実装(.m)とnibファイル(.xib)の3つにまとめられています。ソースファイル名の先頭英文字がカテゴリーを、その次の数字が種類を表しています。デモ内容とソースファイルの対応は以下の一覧表を参照してください。開発環境はXcode 5以上(ARC使用)アプリ動作環境はiOS 6以上となります。「AV04」サンプルは、Apple社のデモ用URLを使用していますので、もしリンクが切れた場合には別のURLでお試しください。

 「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上の映像アセット表示用のビュークラス

【ご注意】サンプルソースコードの使用権利はフリーです。使えるようであれば、ご自身のソースファイルへコピー&ペースしてご利用ください。ただし、その結果として発生した事象に対しては責任は負いかねますのでご了承ください。