0

VS2010のc++アプリで音楽を再生するためにNAudioを使用しています。

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

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

そしてそれはうまくいきます、しかし結局私は片付けをしなければなりません。実際には、IWavePlayer(コード内のwaveOutDevice)をdispose()する必要があります。ただし、Dispose()とFinalize()はIWavePlayerのメンバーではありません(エラーC2039)。破棄しないと、アプリはWaveOutデバイスが閉じられなかったというエラーを表示します。それを閉じる方法は?

4

1 に答える 1

0

WaveOutクラスはwaveOutCloseその Dispose メソッドで API を呼び出します。そのため、再生を正常に完了することができます。WaveOut ではなく、IWavePlayer ポインターのみを保持することが懸念事項である場合は、適切な終了を行うことができるように、2 つを保持してみませんか。

于 2012-10-06T11:42:27.980 に答える