gpt4 book ai didi

c++ - 错误 : major format is 0 (libsndfile, Qt)

转载 作者:行者123 更新时间:2023-11-28 05:40:23 24 4
gpt4 key购买 nike

当我尝试在以下代码中使用 libsndfile 库在 Qt 中打开文件时,我不断收到主题中提到的错误(没有其他消息):

    SNDFILE * outfile;
SF_INFO sfinfo;

//preparing output file
sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
sfinfo.channels = 1;
sfinfo.samplerate = 44100;

memset( &sfinfo, 0, sizeof(SF_INFO));
const char* path = "RainFilter.wav";

outfile = sf_open(path, SFM_WRITE, &sfinfo);

if(!(outfile))
{
std::cout << "Failed to create output file" << std::endl;
sf_perror(outfile);
return;
}

这似乎是 sfinfo 格式属性的主要部分的问题。我已经尝试了大多数其他格式,包括数值,例如:

sfinfo.format = 0x0B0000 | 0x0006;

我该怎么办?是库链接问题,环境问题还是代码不正确?在这种情况下,路径无关紧要,我已尝试指向不同的目录,但问题仍然存在。

最佳答案

将电话移至

    memset(&sfinfo, 0, sizeof(sfinfo));

//preparing output file
sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
sfinfo.channels = 1;
sfinfo.samplerate = 44100;

之前 对 sfinfo 的元素赋值。更好的是,删除对 memset 的调用,并使用以下方法正确地对结构进行零初始化:

    SFINFO sfinfo = {0};
sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
sfinfo.channels = 1;
sfinfo.samplerate = 44100;

关于c++ - 错误 : major format is 0 (libsndfile, Qt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240579/

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