2014-02-10 28 views
0

這是我的代碼:媒體播放器不自由媒體的taglib

oldMP3 = this.MediaPlayer.URL; 
this.MediaPlayer.Ctlcontrols.stop(); 
this.MediaPlayer.URL = (String)mp3List.SelectedItem; 
TagLib.File tagFile = TagLib.File.Create(oldMP3); 
tagFile.Tag.Genres[0] = this.genreConcatenated.Text; 
tagFile.Save(); 

當我嘗試保存的MP3,我得到一個IO-異常,該文件不容寫入。我如何從媒體播放器中釋放媒體?媒體播放器不是自由地釋放媒體嗎?或者我在這裏錯過了什麼?

回答

0

我只是找到了解決辦法:

private void waitlUntilFileIsWritable(string fileLocation) 
    { 
     while (true) 
     { 
      try 
      { 
       using (FileStream Fs = new FileStream(fileLocation, FileMode.Open, FileAccess.ReadWrite, FileShare.None, 100)) 
       { 
        //the file is close 
        break; 
       } 
      } 
      catch (IOException) 
      { 
       //wait and retry 
       System.Threading.Thread.Sleep(500); 
      } 
     } 
    } 

這是不是很漂亮,但到目前爲止,我還沒有找到更好的東西。關於一些文章,如果文件是可寫的,似乎沒有其他方法可以看到。它現在有效,即使一切都有點慢:/