2011年5月6日金曜日

iOS 備忘 音関連

音の鳴らし方。
大きく4種類あって、そのうち2つを書いておく
(I)
(1)ファイルを指定して準備
AudioServicesCreateSystemSoundID()

(2)鳴らす
- AudioServicesPlaySystemSound();
- AudioServicesPlayAlertSound()
↑バイブレーション付き

(3)後始末
AudioServicesDisposeSystemSoundID(soundFileObject);

・利点
わりと簡単に音を出せる。(でも後述の方法とさほど変わらない。。。)
・欠点
ボリュームの調整ができない。
iPhoneのボリューム設定と連動しない
(ミュートスイッチがONなら、鳴らない)

ちなみにバイブレーションのみは、
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);


(II)
(1)ファイルを指定してインスタンスを作成
AVAudioPlayer *soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:&error];

(2)準備
[soundPlayer prepareToPlay];

(3)鳴らす
[soundPlayer play];

(4)途中で止める
[soundPlayer stop];

stopの後にplayすると、止めたところから再生されるので、頭出しするには、
soundPlayer.currentTime = 0;

???
[soundPlayer stop];
すると、バッファがクリアされるので、
[soundPlayer prepareToPlay];
が必要?未確認。



(5)後始末
[soundPlayer release];

・利点
iPhoneのボリューム設定と連動する。
途中で音を止められる。
・欠点
(比較的)指定が面倒?