Я использую NAudio, и сейчас я играю.Воспроизведение с Memorystream, остановка, когда достигнут конца, и начать запись снова
И теперь у меня есть проблема.
Я записываю микрофон в запоминающее устройство.
Когда я нажимаю кнопку, она прекращает запись (чтобы предотвратить запись и чтение одновременно) И играть из этого памятного тома.
Но я не знаю, как это сказать, когда он достиг конца, если начнется снова.
Чтобы после его воспроизведения он снова запишет мой микрофон, и я смогу повторить процесс.
Благодаря
private void play_Click(object sender, EventArgs e)
{
StreamReader streamu = new StreamReader(waveStream);
//waveWriter.Close();
sourceStream.StopRecording();
// Wasout.Dispose();
waveStream.Seek(0, SeekOrigin.Begin);
//waveStream.Read(bytes, 0, waveStream.Length);
playwave = new NAudio.Wave.RawSourceWaveStream(@waveStream, sourceStream.WaveFormat);
waveOut2.Init(playwave);
//Aut.InitRecordAndPlayback(playwave, 2, 48000);
waveOut2.Play();
if (streamu.EndOfStream)
{
waveOut2.Dispose();
waveOut2 = new NAudio.Wave.DirectSoundOut();
sourceStream.StartRecording();
Wasout.Init(waveIn);
Wasout.Play();
}
}
Это то, что я делаю сейчас, и как вы можете видеть, я бездельничал. И хорошо, он не работает; P
Есть ли способ, который может быть написан проще? Это сложно: S Не могу ли я определить, когда он играл до конца, очистить мемостриум и записать еще раз? Спасибо – Zerowalker
Там не так много, просто вырежьте и вставьте этот код в свой проект и вызовите waveOut.Init (новый LoopStream (playWave)); –
На самом деле, я думаю, что, возможно, неправильно понял ваш вопрос. Чтобы определить прекращение воспроизведения, используйте событие PlaybackStopped. Затем вы можете запустить другую запись. –