Я использую NAudio для записи данных с микрофона, затем мне нужно воспроизвести звук без записи файла wav.
Воспроизведение / Пауза / Стоп работают хорошо, но как я могу вернуть позицию в начало bwp и воспроизвести с начала аудио.
Я пока не могу написать файл wav, потому что мне нужно воспроизвести файл, пролистать его с помощью ползунка, затем стереть конец буфера новыми записанными данными, а затем сохранить измененный файл.
private void btn_Start_Click(object sender, EventArgs e)
{
if (sourceList.SelectedItems.Count == 0)
return;
int deviceNumber = sourceList.SelectedItems[0].Index;
wo = new WaveOutEvent();
wi = new WaveIn();
wi.DeviceNumber = deviceNumber;
wi.WaveFormat = new WaveFormat(44100, WaveIn.GetCapabilities(deviceNumber).Channels);
wi.DataAvailable += new EventHandler<WaveInEventArgs>(wi_DataAvailable);
bwp = new BufferedWaveProvider(wi.WaveFormat);
bwp.BufferDuration = new TimeSpan(1, 0, 0);
bwp.DiscardOnBufferOverflow = false;
wi.StartRecording();
}
private void wi_DataAvailable(object sender, WaveInEventArgs e)
{
bwp.AddSamples(e.Buffer, 0, e.BytesRecorded);
}
private void btn_Stop_Click(object sender, EventArgs e)
{
wi.StopRecording();
wo.Init(bwp);
}
private void btn_InitWaveOut_Click(object sender, EventArgs e)
{
wo.Play();
}
private void btn_StopWaveOut_Click(object sender, EventArgs e)
{
wo.Stop();
}
private void btn_PauseWaveOut_Click(object sender, EventArgs e)
{
wo.Pause();
}