首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从RIFF WAV文件中提取BitsPerSample

从RIFF WAV文件中提取BitsPerSample
EN

Stack Overflow用户
提问于 2016-08-06 21:44:30
回答 1查看 101关注 0票数 1

我正在尝试使用FileStream从WAV文件中提取BitsPerSample。根据该来源:WAV offset Table,BitsPerSample位于偏移量35处并且是2字节长。

这是我尝试提取它的代码:

代码语言:javascript
复制
public int getBitsPerSample()
{
    int bitsPerSample;
    using (var f = File.OpenRead(wavPath))
    {
        f.Seek(35,SeekOrigin.Begin);
        byte[] val = new byte[2];
        f.Read(val,0,2);
        bitsPerSample = BitConverter.ToInt16(val,0);
    }
    return bitsPerSample;
}

现在当我在一个我知道是16位的WAV文件上使用它时,我得到的bitsPerSample是25600?当我使用十六进制编辑器查看te WAV文件时,我的怀疑得到了证实,2个字节实际上是偏移量0x22,就在它说"d a t a“之前,它应该在那里。检查不同的16位WAV文件确认了这一点。

在0x22处求值得到的位数是2,这也是不正确的。

如果现在有人已经知道这个问题了,那就太好了,但我会继续添加一些信息,以防需要。

当我在十六进制编辑器中打开一个32位WAV文件时,我找到了偏移量为0x4E的bitsPerSample,这也与我的源代码完全不同,我的最后一个结果是...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-06 21:58:51

您的问题是您曲解了链接资源的偏移量。它们是从1开始的。文件查找显然是从0开始的。因此,请改为查找字节34,然后重试。

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

https://stackoverflow.com/questions/38804923

复制
相关文章

相似问题

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