使用AudioVideoPlayback库处理音频问题
Audio disposing problems using AudioVideoPlayback library
我正在尝试制作播放列表,其中音乐一首接一首地播放。当它完成时,我需要 Dispose()
Audio
,因为会发生内存泄漏。我写了这段代码:
Audio a = new Audio(@"Music\Title.ogg");
a.Ending += new EventHandler((sender, e) => { (sender as Audio).Dispose(); });
a.Play();
问题是我在 Application.Run(new MainForm());
中有 System.AccessViolationException
:Attempted to read or write protected memory. This is often an indication that other memory is corrupt
。它发生在音乐结束播放后的结束事件处理程序中。
那么,如何依次播放一些音乐文件,并在播放完后处理之前的音频?
不要在它自己的事件中处理 Audio
,因为这个 class 可能想在调用您的处理程序后做一些簿记工作。
我不知道您的应用程序的逻辑,但这里有一些想法,请尝试在事件处理程序中对此对象调用 Open
。它应该足够聪明,可以处理旧数据并加载新数据。
我正在尝试制作播放列表,其中音乐一首接一首地播放。当它完成时,我需要 Dispose()
Audio
,因为会发生内存泄漏。我写了这段代码:
Audio a = new Audio(@"Music\Title.ogg");
a.Ending += new EventHandler((sender, e) => { (sender as Audio).Dispose(); });
a.Play();
问题是我在 Application.Run(new MainForm());
中有 System.AccessViolationException
:Attempted to read or write protected memory. This is often an indication that other memory is corrupt
。它发生在音乐结束播放后的结束事件处理程序中。
那么,如何依次播放一些音乐文件,并在播放完后处理之前的音频?
不要在它自己的事件中处理 Audio
,因为这个 class 可能想在调用您的处理程序后做一些簿记工作。
我不知道您的应用程序的逻辑,但这里有一些想法,请尝试在事件处理程序中对此对象调用 Open
。它应该足够聪明,可以处理旧数据并加载新数据。