2013-03-14 2 views
0

У меня есть приложение для записи (CSHARP), где я использую NAudio для записи/воспроизведения звука. Наша потребность в том, чтобы вставить и перезаписать звук в существующем wav-файле. В настоящее время для вставки звука я использую текущую позицию wav-файла и выполняю разделение. Слейте новый wav-файл в исходный файл и объедините его с остальной частью файла. При перезаписывании я беру текущую позицию оригинального звука и объединяю новый звук с этой позиции. Этот процесс, похоже, работает нормально, но по какой-то причине я думаю, что чтение файла и запись файла берут большие потери. Когда мы делаем быструю запись, прекращаем запись, перематываем, записываем, останавливаем запись и т. Д. Запрос на файл забивается, и в какой-то момент я получаю ошибку исключения файла IO, говоря: «Файл используется другим процессом. « (Примечание: мы используем оборудование для ножек с тремя клавишами, предназначенными для записи, воспроизведения и перемотки назад. Проблема у нас есть, когда мы быстрее стучаем по педалям.)Вставка wav-файла в wav-файл с использованием naudio

Я действительно застрял в этом пункте, поскольку я не могу для решения этой проблемы. Мне понадобится экспертная помощь. Есть ли способ вставить аудио из определенной позиции в файл без разделения и слияния? Помощь PLSSSSSSSSS !!

ответ

0

Перезапись звука в WAV-файле не слишком сложна, и когда мне нужно это сделать, я использую настроенную версию WaveFileWriter, которая может открыть существующий WAV-файл и позволяет вам перемещаться внутри блока данных.

Вставка с другой стороны всегда будет проблематичной, поскольку вам необходимо сдвинуть весь звук после точки вставки вперед. У меня возникнет соблазн создать отдельный «вставной» wav-файл, а после завершения всей сессии записи сшить части вместе в окончательный WAV-файл.