0
NAudio 및 ASIO를 사용하여 일련의 wav 파일을 재생하고 있습니다. 오디오 카드가 지원하기 때문에 ASIO를 사용해야합니다. 나는 각각의 wav를 이런 식으로 연주 할 수 있었다 :NAudio ASIO 재생 wav
waveRead = new WaveFileReader(completeStreamMS); //completeStreamMS is a memorystream
waveRead.Position = 0;
pcm = new WaveChannel32(waveRead);
reductionStream = new BlockAlignReductionStream(pcm);
reductionStream.Position = 0;
waveOutDevice.Init(reductionStream);
waveOutDevice.Play();
이제 wav가 시작되기 전에 1 초의 침묵을 삽입해야한다. 내가 찾은 유일한 방법은 OffsetSampleProvider를 사용하는 것입니다,하지만이
ISampleProvider isp = WaveExtensionMethods.ToSampleProvider(waveRead);
var offset = new SampleProviders.OffsetSampleProvider(isp);
offset.DelayBy = TimeSpan.FromSeconds(1);
var wp = new SampleProviders.SampleToWaveProvider(offset);
waveOutDevice.Init(wp);`
waveOutDevice.Play();
같이 할 경우 첫 번째 WAV는 잘 재생하지만, 최대한 빨리 (중지)을 waveOutDevice 또는 나는 새로운 하나를 reinstantiate하려고 그 위치에서 프로그램 실행이
System.ExecutionEngineException
Cannot intercept exception. Debugged program can not be continued and properties can not be evaluated.
으로 이해할 수 없습니다. 도와주세요. 감사합니다