首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#等价于Java的AudioFormat.isBigEndian和AudioFormat.Encoding.PCM_SIGNED

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

Stack Overflow用户
提问于 2015-02-14 16:43:56
回答 1查看 272关注 0票数 0

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

以下是Java代码

代码语言:javascript
复制
 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#代码..。

代码语言:javascript
复制
     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 签名的还是未签名的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-14 18:43:03

PCM WAV文件使用小endian。最常见的比特深度是16位,这将是签名(即短或Int16在C#)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28517791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档