我想随机化一个Soundfiles数组。
- (void)generateRandomizedSounds {
int randomSoundNumber = arc4random() % 4; //random number from 0 to 3
NSLog(@"random sound number = %i", randomSoundNumber);
NSString *effectTitle;
switch (randomSoundNumber) {
case 0:
effectTitle = @"bell";
break;
case 1:
effectTitle = @"brake";
break;
case 2:
effectTitle = @"dog";
break;
case 3:
effectTitle = @"bird";
break;
default:
break;
}
SystemSoundID soundID;
NSString *soundPath = [[NSBundle mainBundle] pathForResource:effectTitle ofType:@"mp3"];
NSURL *soundUrl = [NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef)soundUrl, &soundID);
AudioServicesPlaySystemSound(soundID);
return;
}
好的,现在我想用一个按钮播放每个案例。
但我尝试的一切都出错了。
答案 0 :(得分:0)
AudioServicesPlaySystemSound()
功能无法播放任何MP3文件。该功能仅支持.caf
,.aac
或.wav
这些文件格式,声音必须为30秒或更短。
使用此功能播放的声音文件必须是: 持续时间不超过30秒在.caf,.aif或.wav文件中打包的线性PCM或IMA4(IMA / ADPCM)格式
因此,如果clock.mp3
持续时间少于30秒,则可以在转换文件格式时播放声音。
要将mp3
转换为caf
,例如使用afconvert
命令,如下所示:
$ afconvert -f caff -d ima4 bell.mp3 bell.caf
如果不是(声音超过30秒),请改用AVPlayer
的{{1}}。
AVFoundation.framework