これは私が現在使用しているコードであり、機能していません(このメソッドを呼び出すボタンを押しても何も起こりません)。以前、私はaudioPlayerのプロパティを持っていて、それは機能しました(以下のすべてのaudioPlayerは明らかにself.audioPlayerでした)。問題は、サウンドを2回再生しようとすると、最初のサウンドの再生が終了することでした。
私はサウンドボードを作っているので、音が重なるようにしたいので、これは良くありません。私はaudioPlayerをプロパティの代わりにローカル変数にすることができ、すべてが大丈夫だと思っていましたが、今ではサウンドがまったく機能せず、理由がわかりません。AVAudioPlayerについて私が見つけたすべてのチュートリアルでは、プロパティが作成されていますが、その理由は誰も説明していません。これがうまくいかない場合、オーバーラップする可能性のあるサウンドを作成するには、どのような代替手段が必要ですか?
- (void)loadSound:(NSString *)sound ofType:(NSString *)type withDelegate:(BOOL)delegate {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:sound
ofType:type]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
if (delegate) audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}