Как я могу заставить 2 wavefilereaders играть последовательно? - PullRequest
3 голосов
/ 11 января 2010

Я пытаюсь воспроизвести набор аудиофайлов WAV, отправляемых по сети, для воспроизведения в виде общего звукового потока. Как получить набор этих чанков для воспроизведения одного за другим без прерывания звука или всплесков с помощью NAudio? У меня может быть воспроизведение одного файла, но я не могу найти способ определить, когда заканчивается один звуковой файл или как прикрепить второй звуковой файл к первому.

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

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Другой подход заключается в создании собственного настраиваемого WaveStream, который содержит два WaveFileReaders. В методе Read возвращайте данные из первого, пока они не закончатся, затем начните возвращать данные со второго. Вам нужно будет сделать немного больше, если вам нужно поддерживать репозиционирование во время воспроизведения, но кроме этого оно должно быть очень простым

2 голосов
/ 11 января 2010

Этот урок NAudio показывает, как смешивать потоки в режиме реального времени. Кажется, он поддерживает позиционирование (поэтому вы можете смешивать второй поток прямо в конце первого).

http://opensebj.blogspot.com/2009/02/naudio-tutorial-2-mixing-multiple-wave.html

...