iOS プログラミング メモ audioPlayerDidFinishPlaying の使い方

2月11日の「掲示板」とは別の掲示板で、AVAudioPlayer の再生終了時に特定の処理をさせたいという人がいたので、また自分の練習を兼ねてサンプルのプログラムを書いてみました。

"Push Me" と書いてあるボタンを押すと、mp3が再生され、ボタンの文字が"Wait" に変わります。
mp3の再生が終了すると、ボタンの文字が "Push Me"に戻ります。

まず、 .h ファイルで AVAudioPlayerDelegate デリゲートを使う旨を宣言する。

@interface ViewController : UIViewController{


そして、.m ファイルで myPlayer を実装した後で、delegate を自分自身に設定

[myPlayer setDelegate:self];

最後に、 .mファイルに以下のメソッドを追加する。

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{

[aButton setTitle:@"Push Me" forState:UIControlStateNormal];
}

こうすることで、myPlayer の再生終了時に、同じクラス内の audioPlayerDidFinishPlaying というメソッドが自動的に呼び出されるというワケ。

ちなみに、スライダーを動かすと、ボリュームが変わります。