У меня есть активная запись звука в формате WAV с помощью библиотеки NAudio
.Копирование и обновление содержимого активной записи файла Wav в новый файл
private void RecordStart() {
try {
_sourceStream = new WaveIn {
DeviceNumber = _recordingInstance.InputDeviceIndex,
WaveFormat =
new WaveFormat(
44100,
WaveIn.GetCapabilities(_recordingInstance.InputDeviceIndex).Channels)
};
_sourceStream.DataAvailable += SourceStreamDataAvailable;
if (!Directory.Exists(_recordingInstance.AudioFilePath)) {
Directory.CreateDirectory(_recordingInstance.AudioFilePath);
}
WaveFileWriter _waveWriter = new WaveFileWriter(
_recordingInstance.AudioFilePath + _recordingInstance.AudioFileName,
_sourceStream.WaveFormat);
_sourceStream.StartRecording();
}
catch (Exception exception) {
Log.Error("Recording failes", exception);
}
}
private void SourceStreamDataAvailable(object sender, WaveInEventArgs e) {
if (_waveWriter == null) return;
_waveWriter.Write(e.Buffer, 0, e.BytesRecorded);
_waveWriter.Flush();
}
Я хочу скопировать последний доступный контент в другое место. Скопированный файл должен быть в формате WAV и должен иметь возможность воспроизводить доступную продолжительность. Обновляйте файл назначения, когда доступно больше контента.
Я пробовал следующий пример кода (используя NAudio) со статическим WAV-файлом, но решение не работает.
Созданный WAV-файл поврежден - не в правильном формате.
using (WaveFileReader reader = new WaveFileReader(remoteWavFile)) { byte[] buffer = new byte[reader.Length]; int read = reader.Read(buffer, 0, buffer.Length); }
Когда запись выполняется, код генерирует исключение «Файл используется другим приложением».
Что значит «решение не работает»? Скомпилирует ли он? Вызывает ли это исключение? Это шлепает вашу собаку? Пожалуйста, опишите проблему более подробно. – Corey
Я пытался прочитать содержимое в буфер, а затем создать новый файл, используя массив байтов. Он скопировал содержимое и создал WAV-файл. Но не удается воспроизвести файл. – Sarin
Итак, ваш второй блок кода показывает вам чтение данных из волнового файла, но он ничего не делает с этими данными. Где раздел записи? – Corey