0

我在 VS2010 的 c++ 应用程序中使用 NAudio 播放音乐:

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

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

它工作正常,但最后我必须进行清理。实际上,我必须 dispose() IWavePlayer(代码中的 waveOutDevice)。但是 Dispose() 和 Finalize() 不是 IWavePlayer 的成员(错误 C2039)。如果我不处理它,应用程序会给我一个 WaveOut 设计未关闭的错误。如何关闭它?

4

1 回答 1

0

WaveOut类确实waveOutClose在其 Dispose 方法中调用 API,因此您可以并且您可能应该干净地完成播放。如果您担心的是您只持有 IWavePlayer 指针,而不是 WaveOut,那么为什么不持有这两个指针以便您可以正确终止。

于 2012-10-06T11:42:27.980 回答