前段时间用QuartzTypeLib 编写了一个视频播放器。现在添加视频播放列表中文件的删除功能。可总是有问题,非常希望得到您的帮助,不管能不能帮到我,进来的朋友都谢谢您们的关注。谢谢。**********
使用File.Delete(delFile)执行文件删除后,未提示异常,播放目录下仍然存在该文件,用其它播放器打开,但不可播放,播放时提示“打开失败”。
再次使用File.Delete(delFile)执行文件删除,提示异常:“对路径“D:\media\video\1.wmv”的访问被拒绝”
直到完全退出应用程序,目录下的文件才被真正删除。我想是不是因为在播放过程中视频文件驻留内存没有完全释放掉造成的删除失败。在删除文件前调用了Clearup清除对象。
private void CleanUp()
{
if (m_objMediaControl != null)
{
m_objMediaControl.Stop();
m_objMediaPosition.CurrentPosition = 0;
m_objMediaControl = null;
}
if (m_objMediaEventEx != null)
{
m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
m_objMediaEventEx = null;
}
if (m_objMediaEvent != null)
{
m_objMediaEvent = null;
}
if (m_objVideoWindow != null)
{
m_objVideoWindow.Visible = 0;
m_objVideoWindow.Owner = 0;
m_objVideoWindow = null;
}
if (m_objMediaPosition != null)
{
m_objMediaPosition = null;
}
if (m_objBasicAudio != null)
{
m_objBasicAudio = null;
}
if (m_objFilterGraph != null)
{
m_objFilterGraph.Stop();
m_objFilterGraph = null;
}
}
使用File.Delete(delFile)执行文件删除后,未提示异常,播放目录下仍然存在该文件,用其它播放器打开,但不可播放,播放时提示“打开失败”。
再次使用File.Delete(delFile)执行文件删除,提示异常:“对路径“D:\media\video\1.wmv”的访问被拒绝”
直到完全退出应用程序,目录下的文件才被真正删除。我想是不是因为在播放过程中视频文件驻留内存没有完全释放掉造成的删除失败。在删除文件前调用了Clearup清除对象。
private void CleanUp()
{
if (m_objMediaControl != null)
{
m_objMediaControl.Stop();
m_objMediaPosition.CurrentPosition = 0;
m_objMediaControl = null;
}
if (m_objMediaEventEx != null)
{
m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
m_objMediaEventEx = null;
}
if (m_objMediaEvent != null)
{
m_objMediaEvent = null;
}
if (m_objVideoWindow != null)
{
m_objVideoWindow.Visible = 0;
m_objVideoWindow.Owner = 0;
m_objVideoWindow = null;
}
if (m_objMediaPosition != null)
{
m_objMediaPosition = null;
}
if (m_objBasicAudio != null)
{
m_objBasicAudio = null;
}
if (m_objFilterGraph != null)
{
m_objFilterGraph.Stop();
m_objFilterGraph = null;
}
}
解决方案 »
- sql 合并数据条???(急。。。)
- VS2010新建Siverlight页面 视图设计器会报错
- 急救,Web服务中返回SqlDataReader的值出错,跪求高手帮忙!
- 请教控制进程暂停、继续运行的更好的方法
- 水晶报表动态生成数据的问题
- 请问如何将在 DataGrid 一栏里的ComboBox改为可以让使用者自行输入值进入
- 最最简单的问题!在线等!
- 史上最让人尖叫的C语言代码
- 如何在vb中调用C#开发的组件?!
- 如何能够监听80号端口的数据,因为80号端口已经被iis给占用了!但防火墙可以阿!为什么了!!(回者有分!)
- 求row socket的一例子!
- IIS连接远程的oracle数据库出错。
http://www.cnblogs.com/jiah/archive/2006/11/09.html
尽早将它们释放是非常重要的
问题继续。
大家快来帮忙呀......