我正在努力制作播放列表,音乐会一个接一个播放。完成后我需要Dispose()
Audio
,因为会发生内存泄漏。我写了这段代码:
Audio a = new Audio(@"Music\Title.ogg");
a.Ending += new EventHandler((sender, e) => { (sender as Audio).Dispose(); });
a.Play();
问题在于我System.AccessViolationException
Application.Run(new MainForm());
Attempted to read or write protected memory. This is often an indication that other memory is corrupt
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_list) {
ListFragment fragment = new ListFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
} else if (id == R.id.nav_gallery) {
GalleryFragment fragment = new GalleryFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
return true;
}
。它在音乐结束播放后立即发生在结束事件处理程序中。
那么,我怎样才能一个接一个地播放一些音乐文件并在完成后处理以前的音频?
答案 0 :(得分:0)
不要将Audio
置于其自己的事件中,因为此类可能希望在调用您的处理程序后执行一些簿记工作。
我不知道您的应用程序的逻辑但是这里有一些想法,尝试在事件处理程序内的此对象上调用Open
。它应该足够聪明,可以处理旧数据并加载新数据。