Java 的 AudioFormat.isBigEndian 和 AudioFormat.Encoding.PCM_SIGNED 的 C# 等价物

C# equivalent for Java's AudioFormat.isBigEndian and AudioFormat.Encoding.PCM_SIGNED

我很难为我的简单项目尝试将一些 Java 代码移植到 C#。 Java 代码使用 format.isBigEndian 并检查音频文件数据是否 signed 。我的 C# 项目使用 NAudio 来处理音频文件。

这是Java代码

 public void LoadAudioStream(AudioInputStream inputStream) {
    AudioFormat format = inputStream.getFormat();
    sampleRate = (int) format.getSampleRate();
    bigEndian = format.isBigEndian();
    AudioFormat.Encoding encoding = format.getEncoding();
    if (encoding.equals(AudioFormat.Encoding.PCM_SIGNED))
        dataIsSigned = true;
    else if (encoding.equals(AudioFormat.Encoding.PCM_UNSIGNED))
        dataIsSigned = false;
}

以及我正在使用的 C# 代码..

     public void LoadAudioStream(WaveFileReader reader)
   {
       var format = reader.WaveFormat;
       sampleRate = format.SampleRate;
       //bigEndian = ??
       var encoding = format.Encoding;
       if (encoding.Equals( /*????*/))
       {
           dataIsSigned = true;
       }
       else if (encoding.Equals( /*?????*/))
       {
           dataIsSigned = false;
       }
   }

如何检查音频文件数据是否为 ​​big-endian?最后有没有办法检查 AudioFormat 是 PCM signed 还是 unsigned?

PCM WAV 文件使用小端。最常见的位深度是 16 位,这将是有符号的(即 C# 中的 short 或 Int16)。