我正在使用以下代码删除音频文件:
NSMutableData * wave = [NSMutableData dataWithContentsOfURL:self.recordedFileURL options:NSDataReadingUncached error: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];
它正在正确删除但是在我恢复之后我的音频广告将恢复部分添加到旧部分,如下所示:
NSMutableData * part2 = [NSMutableData dataWithContentsOfURL:self.soundFileURL options:NSDataReadingUncached error:nil];
NSFileHandle *file = [NSFileHandle fileHandleForWritingToURL:oldURL error:nil];
if (file) {
[file seekToEndOfFile];
[file writeData:part2];
}
然后音频文件成功附加,但恢复的音频部分有太多的干扰,无法收听该部分。
请帮我解决这里出了什么问题。
答案 0 :(得分:0)
您的样本大小是16位还是更多?如果您在样本中间剪切音频,则流的其余部分将只是噪声。您需要确保长度* rangeToCut是样本大小的倍数。