最近在调试别人写的一个程序,C#通过WMPLib调用windows media player播放媒体文件,其中通过捕获PlayStateChange事件,然后判断WMP的状态,可是在播放某个文件的时候,在循环播了两次之后就进入黑屏状态,我发现是WMP在播放完该文件之后并没有触发PlayStateChange事件但是播放器自己stop了,程序也没有获取到wmppsMediaEnded的状态。更加奇怪的是只是对于这个特定的文件名(比如A.jpg)是这样,把这个文件改名就没有问题,把其他文件改成这个名字(A.jpg)也是同样的问题。更诡异的是这个问题只在我电脑上出现。我开始搜索电脑中同名文件并删除掉,还是不起作用。正当我快要放弃的时候,我突然想起看看windows media play的播放列表了(前几天摆弄过),果然,在图片里面有那个文件名,把文件列表删除,问题就没有了。估计是WMP的播放列表会对代码中调用的WMP有影响吧,具体说不清楚,只希望记录下这个坑爹的事情,再有朋友遇到这事能搜到这里避免耽误太多的时间。
就是如下图,在图片中存在该文件名: