Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c SimpleAudioEngine始终发挥相同的效果?_Objective C_Cocos2d Iphone_Simpleaudioengine - Fatal编程技术网

Objective c SimpleAudioEngine始终发挥相同的效果?

Objective c SimpleAudioEngine始终发挥相同的效果?,objective-c,cocos2d-iphone,simpleaudioengine,Objective C,Cocos2d Iphone,Simpleaudioengine,我录制了一些文件,然后播放: NSArray *dirPaths; NSString *docsDir; dirPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); docsDir = [dirPaths objectAtIndex: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];
它在第一次工作,但第二次它再次播放相同的文件,即使我已经录制了一些其他文件


有什么帮助吗?

可能您的音频引擎正在预加载该效果并保持该预加载,请尝试:

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

在顶端。试试这个,如果它不起作用,我需要看看你的录音代码,我想发生的是你的音频文件拒绝被新文件覆盖。也许您应该尝试在用户每次记录文件时更改文件名。这样,当他录制时,您可以将文件保存为字符串,格式如下:

[NSMutableString stringWithFormat:@"temp%d.caf",number];
然后,每当用户想要录制时,您将“number”增加1

number = number +1;

您确定新记录也被称为
temp0.caf
?当你想播放一个文件时,你要运行所有这些代码吗?我没有使用这个引擎的经验,但也许你应该在再次预加载它之前解除效果?我真的不明白你想问什么,你说:“即使我已经录制了一些其他文件”我们可以看看代码吗…我正在使用简单的avaudioRecorder录制一个文件,里面没有什么特别的内容。是的,它被记录到相同的文件路径。如果我用CDSoundEngine播放,它确实会改变记录。我试过了,谢谢。那是行不通的。即使没有预加载,它也不会。仍然反复播放相同的音频。如果我用CDSoundEngine播放音频,它工作得很好;