为了我的简单项目,我很难尝试将一些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;
}
}如何检查音频文件数据是否为大端?最后,是否有一种方法来检查AudioFormat是PCM 签名的还是未签名的?
发布于 2015-02-14 18:43:03
PCM WAV文件使用小endian。最常见的比特深度是16位,这将是签名(即短或Int16在C#)。
https://stackoverflow.com/questions/28517791
复制相似问题