.NET 4 앱에서 NAudio를 사용하여 MP3 파일을 재생하고 있습니다. 우선 WaveOut을 초기화합니다..NET 4 C++ NAudio eating memory
IWavePlayer^ waveOutDevice = gcnew WaveOut();
그러면 두 개의 버튼이 있습니다. 재생 버튼 : (코드)
volumeStream = gcnew WaveChannel32(gcnew Mp3FileReader(gcnew IO::FileStream(path, IO::FileMode::Open, IO::FileAccess::Read, IO::FileShare::ReadWrite)));
mainOutputStream = volumeStream;
waveOutDevice->Init(mainOutputStream);
waveOutDevice->Play();
MP3 형식의 FileStream을로드하고 재생합니다. 두 번째 버튼은 정지입니다. (코드)
waveOutDevice->Stop();
재생이 중지됩니다.
내 앱을 시작하면 5.344KB를 먹습니다. 내가이 개 버튼을 쳤을 때
그러나 약 10 배의 응용 프로그램 (내가 다른 MP3의 재생있어 상상) (정지 후 재생은) 14.912 KB 먹는다!
그리고 나는이 메모리를 해제하는 방법을 모르겠어요. 당신은으로 IDisposable을 구현 반드시 Dispose
모든 .NET 개체를해야한다, 원칙적으로
IWavePlayer^ waveOutDevice;
WaveStream^ mainOutputStream;
WaveChannel32^ volumeStream;