Objective c 附加已擦除的文件有太多干扰噪声
我正在使用以下代码擦除音频文件: NSMutableData*wave=[NSMutableData DATA with contentsOfURL:self.recordedFileURL选项:NSDataReadingUncached错误:nil]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
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是样本大小的倍数