C# C语言中的Wav文件转换/重采样选项#

C# C语言中的Wav文件转换/重采样选项#,c#,vb.net,ffmpeg,C#,Vb.net,Ffmpeg,背景: 尝试将各种wav文件转换为游戏CS:GO接受的格式。 因此,正如您在下面成功执行此操作()的VB应用程序的源代码中所看到的,它应该是: 单声道 16位 22050hz 现在,问题是我对VB的经验很少,因为它是C#我正在努力学习,我不想让它成为一个阻碍 我已经能够,以各种方式转换文件,似乎是正确的格式,可以由正常的媒体播放器播放,但不被游戏接受,像用VB转换的文件 我一直尝试的不同方法都没有成功: int outRate = 22050; 下一个给我一个错误,

背景:

尝试将各种wav文件转换为游戏CS:GO接受的格式。 因此,正如您在下面成功执行此操作()的VB应用程序的源代码中所看到的,它应该是:

  • 单声道
  • 16位
  • 22050hz
现在,问题是我对VB的经验很少,因为它是C#我正在努力学习,我不想让它成为一个阻碍

我已经能够,以各种方式转换文件,似乎是正确的格式,可以由正常的媒体播放器播放,但不被游戏接受,像用VB转换的文件

我一直尝试的不同方法都没有成功:

            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)
项目,该项目位于新项目模板列表的下方。然后将现有代码复制到框架项目中。谢谢,我会尝试一下