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 というメソッドが自動的に呼び出されるというワケ。
ちなみに、スライダーを動かすと、ボリュームが変わります。