onPlaybackStopped не вызывается Naudio

#naudio

#naudio

Вопрос:

Я создаю звуковой сигнал и помещаю его в WaveProviderbuffers, а затем я смешиваю этот тон с другим файлом и воспроизводю этот микс, однако onPlaybackStopped не вызывается.

Я преобразовал свои WaveProviderbuffers в Waverstreams, которые я использовал для создания WaveChannel32. и я установил PadWithZeroes = false, но событие остановки по-прежнему не вызывается.

примечание, если я воспроизводю файл без микширования в WaveProviderbuffers, вызывается событие остановки, так что это работает.

Чего мне не хватает?

WaveProviderToWaveStream wptws = новый WaveProviderToWaveStream(Sinebuffer, Sinebuffer.bufferLength);

WaveChannel32 temp = новый WaveChannel32(wptws); temp.PadWithZeroes = false; микшер.AddMixerInput(temp); mixer2 = новый SampleToWaveProvider(микшер); waveout.Инициализация (mixer2);

 waveout.Play();
       stopToolStripMenuItem.Enabled = true;
       puaseToolStripMenuItem.Enabled = true;
       playToolStripMenuItem.Enabled = false;
 

звуковой сигнал перестает воспроизводиться в установленное мной время, но событие остановки по-прежнему не вызывается

Ответ №1:

Где-то в вашем графике воспроизведения есть бесконечный волновой преобразователь. Это может быть BufferedWaveProvider в этом случае. Я бы также рекомендовал не использовать WaveChannel32 and WaveMixerStream32 — вместо этого используйте a SampleChannel и the MixingSampleProvider .