.net — завершить переполнение стека IWavePlayer NAudio

Я использую NAudio для воспроизведения музыки в моем приложении c ++ в VS2010:

waveOutDevice = gcnew WaveOut();
volumeStream = gcnew WaveChannel32(gcnew Mp3FileReader("C:\\file.mp3"));
mainOutputStream = volumeStream;

waveOutDevice->Init(mainOutputStream);
waveOutDevice->Play();

И это прекрасно работает, но в конце концов я должен сделать уборку. На самом деле, я должен избавиться () IWavePlayer (waveOutDevice в коде). Но Dispose () и Finalize () не являются членами IWavePlayer (ошибка C2039). Если я не избавлюсь от этого, приложение выдаст ошибку, что устройство WaveOut не было закрыто. Как закрыть это?

0

Решение

WaveOut класс звонит waveOutClose API в его методе Dispose, так что вы можете и, возможно, вам следует завершить воспроизведение аккуратно. Если вас беспокоит то, что вы держите только указатель IWavePlayer, а не WaveOut, то почему бы вам не удержать эти два, чтобы вы могли сделать правильное завершение.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]