1

我有一个录音机应用程序(CSHARP),我使用 NAudio 来录制/播放音频。我们需要在现有的 wav 文件中插入和覆盖音频。目前,为了插入音频,我使用 wav 文件的当前位置并进行拆分。将新的 wav 文件合并到原始文件并与文件的其余部分合并。覆盖时,我采用原始音频的当前位置并从该位置合并新音频。这个过程似乎工作正常,但出于某种原因,我认为读取文件和写入文件需要付出很大的代价。当我们进行快速录制时,停止录制,倒带,录制,停止录制等等..对文件的请求被阻塞,并且在某些时候我得到文件 IO 异常错误,说“文件正在被另一个进程使用.. " (注:我们使用脚踏设备,分配了 3 个按键用于录音,播放和倒带。我们遇到的问题是当我们更快地踩踏板时。)

我真的被困在这一点上,因为我无法解决这个问题。我需要一些专家的帮助。有没有办法在不进行拆分和合并的情况下从文件中的特定位置插入音频?请帮助!

4

1 回答 1

0

覆盖 WAV 文件中的音频并不太难,当我需要这样做时,我使用WaveFileWriter可以打开现有 WAV 文件的自定义版本,并允许您在数据块中重新定位。

另一方面,插入总是会有问题,因为您需要在插入点向前移动之后移动所有音频。我很想创建一个单独的“插入”wav 文件,然后在完成整个录制会话后,将这些部分拼接成最终的 WAV 文件。

于 2013-03-15T09:41:34.413 回答