AVAudioPlayerの複数再生時のメモリリークの対策方法

AVAudioPlayerを複数立ち上げて音を二重で再生させると、
アプリ終了時、またはアプリ強制終了時にメモリリークする。

原因はよくわからんけど、それぞれのプレイヤーでcurrentTimeを0に設定したら落ちなくなった。

その他めも

  • [audio1 stop]しても駄目だった
  • [audio1 autorelease]はできなさげ
  • ofTypeを指定しない場合も同じくメモリリークが発生する

ソース

#include <AVFoundation/AVFoundation.h>

...

@interface ViewController(){
    AVAudioPlayer *audio1 ;
    AVAudioPlayer *audio2 ;
}
@end

...

- (void)viewDidLoad
{
    [super viewDidLoad];
	[self playSound1:@"sound1" ];
	[self playSound2:@"sound2" ];
}

...

- (void) playSound1 : (NSString *)file{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:file ofType:@"mp3"]];
    audio1 = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    audio1.currentTime = 0;
    [audio1 play];
}

- (void) playSound2 : (NSString *)file{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:file ofType:@"mp3"]];
    audio2 = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    audio2.currentTime = 0;
    [audio2 play];
}