Поскольку NAudio разработан, чтобы позволить вам делать более сложные вещи, чем простое воспроизведение одного файла, он не обязательно остановится в конце файла. От того, остановится ли WaveOut, зависит, прекратим ли мы передавать данные или нет. Некоторые WaveStreams в NAudio прекращают предоставлять данные, когда они достигают конца файла, но другие WaveStreams с радостью возвращают буферы, полные нулей, из их метода Read столько раз, сколько их вызывают. Поэтому автоматическая остановка во многом зависит от построенного вами графика WaveStreams.
Из-за этого вам может понадобиться определить, когда остановиться, когда вы закончили читать содержимое файла, который нужно воспроизвести. Я понимаю, что это не идеальная ситуация, и я все еще пытаюсь придумать дизайн, который хорошо работает как для тех, кто просто хочет воспроизвести один файл, так и для тех, кто делает что-то более сложное.