#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
.