我录制了一些文件然后播放:
NSArray *dirPaths;
NSString *docsDir;
dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *soundFilePath = [docsDir
stringByAppendingPathComponent:@"temp0.caf"];
//play
[[SimpleAudioEngine sharedEngine] preloadEffect:soundFilePath];
[[SimpleAudioEngine sharedEngine] playEffect:soundFilePath pitch:1.5f pan:0.0f gain:0.3f];
它第一次工作,但第二次它再次播放同一个文件,即使我已经录制了其他文件。
任何帮助?
答案 0 :(得分:1)
也许您的音频引擎正在预加载该效果并保持预加载,请尝试:
[[SimpleAudioEngine sharedEngine] preloadEffect:nil];
[[SimpleAudioEngine sharedEngine] preloadEffect:soundFilePath];
[[SimpleAudioEngine sharedEngine] playEffect:soundFilePath pitch:1.5f pan:0.0f gain:0.3f];
此外,该代码何时何地被调用。你的录音后它被称为对吗?也许试试:
NSArray *dirPaths = nil;
NSString *docsDir = nil;
在顶部。试试这个,如果它不起作用我需要看你的录音代码
答案 1 :(得分:0)
我认为发生的事情是您的音频文件拒绝被新文件覆盖。也许您应该在每次用户记录文件时尝试更改文件的名称。因此,当他记录时,您将文件保存为字符串,格式为:
[NSMutableString stringWithFormat:@"temp%d.caf",number];
然后,只要用户想要录制,就会将“数字”增加一。
number = number +1;