首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在震颤中获取样本

在震颤中获取样本
EN

Stack Overflow用户
提问于 2018-08-03 18:57:15
回答 1查看 153关注 0票数 0

我必须使用震颤来解码ogg在我的项目,因为更简单的集成(在ESP-32上使用)。它的码头说:

它返回指定数量的解码音频的主机端,签署16位PCM格式。如果音频是多通道的,则通道被交织在输出缓冲器中。 … 签名: long ov_read(OggVorbis_File *vf,char *,int长度,int *位流);

现在,我对如何从char数组读取16位签名样本感到困惑。我是否必须听从将2个字符转换为1 int的建议,还是做其他的事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 21:10:07

一次迭代缓冲区的两个元素。由于数据是小端点形式(根据文档),所以可以直接将两个字符表示为一个带符号的16位整数,在本例中为“short”。

代码语言:javascript
复制
long numBytesRead = ov_read(vf, buffer, length, bitstream); //length is typically 4096

if( numBytesRead > 0 )
{
    for(int i=0; (i+1)<numBytesRead; i=i+2)
    {
        unsigned char high = (unsigned char)buffer[i];
        unsigned char low = (unsigned char)buffer[i + 1];

        int16_t var = (int16_t)( (low << 8) | high );
        //here var is signed 16 bit integer.
    }
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51678616

复制
相关文章

相似问题

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