2016-05-22 23 views
1

私はwavファイルをmp3ファイルに変換することができました。 私のアプリケーションが動作している間は、VLC Media Player(不良ファイルディスクリプタ)のみがフリーズします 私のアプリケーションを閉じると正常に再生されます。私のアプリケーションが開いている間、ファイルを外部で再生できないのはなぜですか?

public void ConvertWavToMp3(string filename) 
    { 
     LameMP3FileWriter mpFileWriter; 
     if (File.Exists(Path.Combine(filename.Split('.').FirstOrDefault() + ".mp3"))) File.Delete(Path.Combine(filename.Split('.').FirstOrDefault() + ".mp3")); 
     using (WaveStream waveStream = WaveFormatConversionStream.CreatePcmStream(new WaveFileReader(filename)))    
     using (mpFileWriter = new LameMP3FileWriter(File.Create(Path.Combine(filename.Split('.').FirstOrDefault() + ".mp3")), waveStream.WaveFormat, LAMEPreset.ABR_320)) 
     { 
      byte[] bytes = new byte[waveStream.Length]; 
      waveStream.Position = 0; 
      waveStream.Read(bytes, 0, (int)waveStream.Length); 
      mpFileWriter.Write(bytes, 0, bytes.Length); 
      mpFileWriter.Flush(); 


     } 
     if (mpFileWriter != null) 
     { 
      mpFileWriter.Dispose(); 
      mpFileWriter.Close(); 
      mpFileWriter = null; 
     } 
     else Console.WriteLine("file writer was null"); 
     lblstatus.Text = "Ready"; 
     lblstatus.ForeColor = System.Drawing.Color.DarkGreen; 
    } 

ご覧のとおり、ファイルを閉じて破棄しますが、これは機能しません。 エラーはそのままです。 ファイル自体は問題ありませんが、アプリケーションの実行が許可されていないか、再生できません。 奇妙な。 うまくいけば、あなたは、 Sincelery、 TheSkilluminati PS私を助けることができる:私は英語のネイティブスピーカーではないよ、私はテキスト内のすべての問題について謝罪:)

答えて

1

私は完全にわからないんだけど、あなたがする必要があります近いとFile.Create(Path.Combine(filename.Split('.').FirstOrDefault() + ".mp3")

だけではうまくいかない場合は

string filePath = Path.Combine(filename.Split('.').FirstOrDefault() + ".mp3"; 

using(FileStream fs = File.Create(filePath)) 
using (mpFileWriter = new LameMP3FileWriter(fs), waveStream.WaveFormat, LAMEPreset.ABR_320)) 
{ 
    byte[] bytes = new byte[waveStream.Length]; 
    waveStream.Position = 0; 
    waveStream.Read(bytes, 0, (int)waveStream.Length); 
    mpFileWriter.Write(bytes, 0, bytes.Length); 
    mpFileWriter.Flush(); 
} 

をするFileStreamを配置しますあなたのコードに別のusingを追加することにより、FileStreamを作成した処分、私はLameMP3FileWriter実装はないと思いますファイルハンドラに問題があります

+0

どこを閉じて処分すればよいですか? Iveはusing(){}の後にすでに試してみました。 – TheSkilluminati

+0

コード例に()を使用して別のコードを追加しました。それがうまくいけば教えてください – greenberet

+0

ああ、ありがとうございました。ニース:) – TheSkilluminati

関連する問題