首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libsndfile写入wav文件

使用libsndfile写入wav文件
EN

Stack Overflow用户
提问于 2014-03-20 10:46:41
回答 1查看 4K关注 0票数 1

我很难将一个短缓冲区写入我的硬盘上的wav文件。我学习了一些教程,但它们都给出了不同的方法。无论如何,这就是我实现它的方式,但由于某种原因,它不起作用。当我试图打印出outfile的结果时,我会得到一个0,任何东西都不会写入磁盘。另外,我尝试了不同的路径,有时有文件名,有时没有文件名。

更新:当我将路径更改为文件名(例如,hello.wav而不是~/Documents/hello.wav)时,打印出outfile返回一个内存位置,如0x2194000

代码语言:javascript
复制
void gilbertAnalysis::writeWAV(float * buffer, int bufferSize){
    SF_INFO sfinfo ;
    sfinfo.channels = 1;
    sfinfo.samplerate = 44100;
    sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;

    const char* path = "~/Documents/hello.wav";

    SNDFILE * outfile = sf_open(path, SFM_WRITE, &sfinfo);
    sf_count_t count = sf_write_float(outfile, &buffer[0], bufferSize) ;
    sf_write_sync(outfile);
    sf_close(outfile);
}
EN

回答 1

Stack Overflow用户

发布于 2020-12-06 06:00:09

文件名中的Tilde (~)通过shell扩展到主目录。对于库函数,文件路径必须是完全的,无论是绝对的还是相对的。

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

https://stackoverflow.com/questions/22530515

复制
相关文章

相似问题

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