gpt4 book ai didi

java - Java的AudioFormat.isBigEndian和AudioFormat.Encoding.PCM_SIGNED的C#等效项

转载 作者:行者123 更新时间:2023-12-03 02:04:44 24 4
gpt4 key购买 nike

对于我的简单项目,我很难尝试将一些Java代码移植到C#中。 Java代码使用 format.isBigEndian 并检查音频文件数据是否为签名的。我的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 有符号的还是 无符号的

最佳答案

PCM WAV文件使用小尾数法。最常见的位深度是16位,并将对其进行签名(即C#中的short或Int16)。

关于java - Java的AudioFormat.isBigEndian和AudioFormat.Encoding.PCM_SIGNED的C#等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com