附加已删除的文件有太多干扰噪音

发布于 2024-12-27 22:59:40 字数 1000 浏览 0 评论 0原文

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

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

然后音频文件已成功附加,但恢复的部分音频有太多干扰,无法收听该部分。

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

I am erasing audio file using following code:

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

it is erasing correctly but after that when i resume my audio ad append resumed part to old part like following:

NSMutableData *part2=[NSMutableData dataWithContentsOfURL:self.soundFileURL options:NSDataReadingUncached error:nil];

         NSFileHandle *file = [NSFileHandle fileHandleForWritingToURL:oldURL error:nil];
         if (file) {

         [file seekToEndOfFile];
         [file writeData:part2];
         }

then audio files are appended successfully but resumed part of audio has too much disturbance not able to listen that part.

Please help me what is going wrong here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟织青萝梦 2025-01-03 22:59:40

您的样本大小是 16 位或更多吗?如果您在样本中间剪切音频,则流的其余部分将只是噪音。您需要确保 length*rangeToCut 是样本大小的倍数。

Is your sample size 16 bits or more? If you cut the audio in the middle of a sample the rest of the stream will be just noise. You need to be sure of length*rangeToCut being a multiple of the sample size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文