0

我录制了一些文件,然后播放:

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];

它第一次工作,但第二次它再次播放相同的文件,即使我已经录制了一些其他文件。

有什么帮助吗?

4

2 回答 2

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;

在顶部。试试这个,如果它不起作用我需要看你的录音代码

于 2012-05-20T11:43:44.190 回答
0

我认为正在发生的是您的音频文件拒绝被新文件覆盖。也许您应该尝试在用户每次录制文件时更改文件的名称。这样当他录制时,您将文件保存为字符串,格式为:

[NSMutableString stringWithFormat:@"temp%d.caf",number];

然后每当用户想要记录时,您将“数字”增加一。

number = number +1;
于 2012-05-23T03:27:06.467 回答