C# C语言中的Wav文件转换/重采样选项#
背景: 尝试将各种wav文件转换为游戏CS:GO接受的格式。 因此,正如您在下面成功执行此操作()的VB应用程序的源代码中所看到的,它应该是:C# C语言中的Wav文件转换/重采样选项#,c#,vb.net,ffmpeg,C#,Vb.net,Ffmpeg,背景: 尝试将各种wav文件转换为游戏CS:GO接受的格式。 因此,正如您在下面成功执行此操作()的VB应用程序的源代码中所看到的,它应该是: 单声道 16位 22050hz 现在,问题是我对VB的经验很少,因为它是C#我正在努力学习,我不想让它成为一个阻碍 我已经能够,以各种方式转换文件,似乎是正确的格式,可以由正常的媒体播放器播放,但不被游戏接受,像用VB转换的文件 我一直尝试的不同方法都没有成功: int outRate = 22050; 下一个给我一个错误,
- 单声道
- 16位
- 22050hz
int outRate = 22050;
下一个给我一个错误,每个人都引用包的LT版本来解决,这反过来需要许可证
var ffMpeg = new FFMpegConverter();
String args = $"-i '{@inFile}' -n -f wav -flags bitexact -map_metadata -1 -vn -acodec pcm_s16le -ar {outRate} -ac 1 '{@outFile}'";
ffMpeg.Invoke(args);
另一个
using (WaveFileReader reader = new WaveFileReader(inFile))
{
var outFormat = new WaveFormat(outRate, 1);
using (var resampler = new MediaFoundationResampler(reader, outFormat))
{
WaveFileWriter.CreateWaveFile(outFile, resampler);
}
}
FileStream fileStream = new FileStream(inFile, FileMode.Open);
WaveFormat waveFormat = new WaveFormat(22050, 16, 1);
var reader = new RawSourceWaveStream(fileStream, waveFormat);
using (WaveStream convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(outFile, convertedStream);
}
fileStream.Close();
另一个
using (WaveFileReader reader = new WaveFileReader(inFile))
{
var outFormat = new WaveFormat(outRate, 1);
using (var resampler = new MediaFoundationResampler(reader, outFormat))
{
WaveFileWriter.CreateWaveFile(outFile, resampler);
}
}
FileStream fileStream = new FileStream(inFile, FileMode.Open);
WaveFormat waveFormat = new WaveFormat(22050, 16, 1);
var reader = new RawSourceWaveStream(fileStream, waveFormat);
using (WaveStream convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(outFile, convertedStream);
}
fileStream.Close();
我在引用的VB代码中没有看到任何特定于VB的内容。它应该直接翻译成C#,没有任何麻烦。嗨,我在尝试使用FFMpegConverter时遇到了这个错误:这是一个表单应用程序。听起来你的目标是.NET 5(.NET Core)。如果是这样,您应该创建一个新的
Windows窗体应用程序(.NET Framework)
项目,该项目位于新项目模板列表的下方。然后将现有代码复制到框架项目中。谢谢,我会尝试一下