Objective c 附加已擦除的文件有太多干扰噪声

Objective c 附加已擦除的文件有太多干扰噪声,objective-c,audio,nsmutabledata,Objective C,Audio,Nsmutabledata,我正在使用以下代码擦除音频文件: NSMutableData*wave=[NSMutableData DATA with contentsOfURL:self.recordedFileURL选项:NSDataReadingUncached错误:nil] NSUInteger length = [wave length]; Byte *byteData = (Byte*)malloc(length); memcpy(byteData, [wave bytes], length); NSMutab

我正在使用以下代码擦除音频文件:

NSMutableData*wave=[NSMutableData DATA with contentsOfURL:self.recordedFileURL选项:NSDataReadingUncached错误:nil]

NSUInteger length = [wave length];

Byte *byteData = (Byte*)malloc(length);
memcpy(byteData, [wave bytes], length);
NSMutableData *data = [NSMutableData dataWithBytes:byteData length:length];

[data replaceBytesInRange:NSMakeRange(length*rangeToCut, length-(length*rangeToCut)) withBytes:NULL length:0];

[data writeToFile:[self.recordedFileURL path] atomically:YES];
         NSFileHandle *file = [NSFileHandle fileHandleForWritingToURL:oldURL error:nil];
         if (file) {

         [file seekToEndOfFile];
         [file writeData:part2];
         }
它正在正确擦除,但在此之后,当我恢复音频广告时,将恢复的部分附加到旧部分,如下所示:

NSMutableData*part2=[NSMutableData数据及其内容URL:self.soundFileURL选项:NSDataReadingUncached错误:nil]

NSUInteger length = [wave length];

Byte *byteData = (Byte*)malloc(length);
memcpy(byteData, [wave bytes], length);
NSMutableData *data = [NSMutableData dataWithBytes:byteData length:length];

[data replaceBytesInRange:NSMakeRange(length*rangeToCut, length-(length*rangeToCut)) withBytes:NULL length:0];

[data writeToFile:[self.recordedFileURL path] atomically:YES];
         NSFileHandle *file = [NSFileHandle fileHandleForWritingToURL:oldURL error:nil];
         if (file) {

         [file seekToEndOfFile];
         [file writeData:part2];
         }
然后成功附加音频文件,但恢复的部分音频干扰太大,无法收听该部分


请帮助我这里出了什么问题。

您的样本大小是16位还是更多?如果你在样本中间切断音频,其余的流将只是噪声。您需要确保length*rangeToCut是样本大小的倍数