所以我用NAudio把mp3转换成wav
范例
string InputAudioFilePath = @"C:\Users\sdkca\Desktop\song.mp3";
string OutputAudioFilePath = @"C:\Users\sdkca\Desktop\song_converted.wav";
using (Mp3FileReader reader = new Mp3FileReader(InputAudioFilePath, wf => new Mp3FrameDecompressor(wf)))
{
WaveFileWriter.CreateWaveFile(OutputAudioFilePath, reader);
}
在我的视图模型中,我将执行以下操作
1.我正在获取Documents
文件夹
private static readonly string DocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
1.那我就这么做
const string ext = ".wav";
var dlg = new OpenFileDialog
{
Filter = Constants.FILEFILTER
};
var res = dlg.ShowDialog();
if (res! == true)
{
var AudioName = Path.GetFileNameWithoutExtension(dlg.FileName);
var FoderParent = Path.Combine(DocumentsPath, Constants.TRANSCRIPTIONS);
var ParentSubFolder = Path.Combine(FoderParent, Constants.AUDIO);
var filename = Path.Combine(ParentSubFolder, $"{AudioName}{ext}");
using var mp3 = new Mp3FileReader(dlg.FileName);
using var ws = WaveFormatConversionStream.CreatePcmStream(mp3);
WaveFileWriter.CreateWaveFile(filename, ws);
}
我收到此错误
系统.IO.目录未找到异常:找不到路径“C:\Users\egome\OneDrive -马德里政治大学\文档\转录\音频\10.wav "的一部分。
我不明白的是,我正在我的文件夹和一个新的fileName.wav
之间进行合并,这是该方法所要求的
1条答案
按热度按时间ggazkfy81#
在创建
filename
字符串之前添加此检查这样,您可以确保所有路径部分都存在。