现在有一个用delphi自带的TMediaPlayer控件播放mp3文件的程序,当调用Close方法结束播放后,程序仍然占用着这个文件,使得用TFileStream.Create(sFileName, fmOpenReadWrite, fmShareDenyNone)打开这个文件的时候报错,并且,运行一次程序,播放过的mp3文件都被程序占用,无法让其他程序用写方式打开。请各位朋友帮忙看看,谢谢:)

解决方案 »

  1.   

    用了Close应该不会再占用的。
    你试试:
      MediaPlayer1.Stop;
      MediaPlayer1.Close;
      MediaPlayer1.FileName:='';
    或者你贴出代码看看。
      

  2.   

    To liangqingzhi:
    我的代码和你写的一样
      if ((mpMain.Mode = mpPlaying) or (mpMain.Mode = mpPaused)) then
      begin
        mpMain.Stop;
        mpMain.Close;
        mpMain.FileName := '';
      end;
    不行哦,大家在帮忙看看:)
      

  3.   

    TFileStream.Create(sFileName, fmOpenReadWrite, fmShareDenyNone)这个问题,是不是文件是只读的,我也用过,没有这个问题的
      

  4.   

    To oushengfen(逸帆):
    文件不是只读的。
      

  5.   

    TO crapex(编程浪子) :
    感谢热心的帮助哦,很欣赏遇到问题自己尝试解决的程序员,呵呵:)
      

  6.   

    将AutoOpen设成False试试。可能是你控件的问题。
      

  7.   

    换个文件类型\换台机器\换个系统测试看看我这里正常
    MP3 XP
      

  8.   

    To liangqingzhi(老之) :
    AutoOpen一直都是false的。
      

  9.   

    To zswang(伴水清清)(专家门诊清洁工) :
    应该和系统没有关系的,不过我还是特意换了两台机器看了一下,问题依然。
      

  10.   

    To liangqingzhi(老之):
    不是,我试过的几台机器都是如此。
    如果你感兴趣,希望你编一个这样的程序具体看一下。
      

  11.   

    我当然是写了试过才说的,上面zswang(伴水清清)(专家门诊清洁工) 也有试过正常。
      

  12.   

    To liangqingzhi(老之):
    我后来发现,文件其实也删除了,但从文件所在文件夹看文件仍然在,关掉程序后文件才消失,有点奇怪哦,呵呵:)