作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用这个 library读取波形文件的样本,特别是 this method :
unsigned int ReadDoublesNI(double** samples, unsigned int offs, unsigned int nsamples, int nchdest = 0)
我正在打开的 Grv Kick Acoustic 01.wav
文件可以下载 here .
使用这段代码似乎可以正确加载文件(文件属性正确,例如 m_bps
、m_nch
和 size
):
WaveReader mWaveReader = WaveReader("D:\\Google Drive\\Samples\\Grv Kick Acoustic 01.wav");
const unsigned int size = mWaveReader.GetSize();
vector<double> samplesContainer(size);
double* mono[1] = { samplesContainer.data() };
mWaveReader.ReadDoublesNI(mono, 0, size, 0);
但是一旦达到fread在 ReadDoublesNI 上,它跳到函数的末尾,结束 for 语句并立即返回。所以我无法从文件中读取任何样本。
我哪里错了?
最佳答案
您当前的代码作为 WaveReader
构造函数调用的一部分打开文件:
WaveReader mWaveReader = WaveReader("D:\\Google Drive\\Samples\\Grv Kick Acoustic 01.wav");
此构造函数调用Open
,但不处理此调用失败的情况。
相反,调用默认构造函数,然后显式调用 Open
,然后自己处理错误情况:
WaveReader mWaveReader = WaveReader();
if (!mWaveReader.Open("D:\\Google Drive\\Samples\\Grv Kick Acoustic 01.wav")) {
// something went wrong - handle this appropriately, and don't use the mWaveReader object
}
这至少可以处理文件未正确打开的情况。
关于c++ - WAVE 文件的恐惧失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805830/
我正在尝试使用 data.table 包中的 fread 打开一个 2.2G 的文件,但一直出现相同的错误(它适用于其他文件,这小于 1G 的强度): library(data.table) data
希望在一些帮助下找到解决方案。 环境:OSX 10.14.3(Mojave) 加速器: 内部版本:5.1.1.201809051655 内部版本:jenkins-appcelerator-studio
我是一名优秀的程序员,十分优秀!