ボタンが押されるたびにランダムなサウンドを再生するには、arc4random()
毎回異なる mp3 ファイルの URL を選択する switch ステートメントで前述のように使用できます。
int random = arc4random_uniform(3);
NSString *soundName;
switch (random)
{
case 0:
soundName = @"soundone"
break;
case 1:
soundName = @"soundtwo"
break;
case 2:
soundName = @"soundthree"
break;
case 3:
soundName = @"soundfour"
break;
}
NSString *soundURL = [[NSBundle mainBundle] pathForResource:soundName ofType:@"mp3"];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundURL] error:NULL];
[player play];
同じサウンドを 2 回続けて再生しないようにするには、変数を.h
追加して、以前に生成された乱数を保持し、while()
ステートメントを使用して、新しく生成された乱数が最後の乱数と同じでないことを確認します。 ..
.h
int previousRandomNumber;
int random;
.m
random = arc4random_uniform(3);
NSString *soundName;
if(random == previousRandomNumber){
while(random == previousRandomNumber){
random = arc4random_uniform(3);
}
}
previousRandomNumber = random;
switch (random)
{
case 0:
soundName = @"soundone"
break;
case 1:
soundName = @"soundtwo"
break;
case 2:
soundName = @"soundthree"
break;
case 3:
soundName = @"soundfour"
break;
}
}
NSString *soundURL = [[NSBundle mainBundle] pathForResource:soundName ofType:@"mp3"];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundURL] error:NULL];
[player play];