~126
内容的には、ビューと、ビューコントローラーの部分
○ビューはさまざまな形状にクリップできる(円や楕円であればCGPathAddEllipseInRectを使用)
○タッチ判定はビューの形状と独立している
○タッチ判定は、計算式で判定する方法とピクセルのアルファ値で判定する方法の2つがある
○ビューコントローラは、ビューを実際のデバイスに結びつける役割がある
○タブバーのアイテムを多数追加したときの「その他」ボタンなど、iPhone側が自動でやってくれる処理も多数ある
○タブバーのアイコンをカスタマイズ可能にする場合も
customizableViewControllers = YES;
のように設定するだけで、後はiPhone側が自動で処理してくれる
メディアの項目
iPhoneではいくつかのオーディオ再生法がある
- Celestial ⇒ 簡単で強力だが、SDK2.0から消滅。非公式。
- System Sound Service⇒ 書籍には「System Audio」とあったが、誤植と思われる(正誤表発見できず)
- Audio Queue ⇒ 低レベルな処理が可能
- AVAudioPlayer
- OpenAL
- AudioUnit
各Audioの特徴は、http://blog.popino.net/article/29376546.htmlにまとめあり。
詳細に音のデータをいじるなどするなら、Audio Queue、鳴らすだけならAVAudioPlayerか。
書籍「iPhone デベロッパーズクックブック」のP.239に、Audio Queueに関して、
「Appleが提供しているプログラミングサンプルは複雑で、少しバグがあります。」との情報あり。
iPhoneのサウンドに関する情報を収集してみた
System Sound Service
- Audio Toolboxに含まれる
- 30秒以下のシステム警告音を鳴らすのに使われる
- 扱いは非常に容易
(AudioServicesCreateSystemSoundIDでIDを作成し、AudioServicesPlayAlertSoundで鳴らせる) - 実機でならないときは、マナーモードになっていないかをチェックせよ
Audio Queue Service
- Audio Toolboxに含まれる
- Windows用の原始的なサウンドAPIに似ている
- 音切れしないために複数のバッファが必要
(ただし、バッファを増やしすぎるとレイテンシが大きくなる) - 再生データを任意に変更する事ができる
- 好きな箇所でループを再生を行う、自分で波形を作成して鳴らすなどの用途
- 機能が高い反面、取り扱い方は複雑
OpenAL
- もともとゲームのために用意されたAPIなので、自由度の高い再生
- OpenGLとの相性もいいので、画面の表示と同期させたいときには適切
- パフォーマンスの点でも有利な事が多い
注意点
iPhoneは様々なオーディオフォーマットに対応しているが、
ハードウェアの制限としてMP3とAACは、一度に一つのファイルしか再生する事ができない。
複数オーディオ再生が必要な場合は、AIFFやWAVといったフォーマットで音源を用意する。