【发布时间】:2014-08-06 17:39:42
【问题描述】:
谁能告诉我portaudio回调函数变量framesperbuffer是什么? 如果我想通过 PA_WriteStream() 每次迭代播放 64 字节数据的音频流,那么我应该在 framesperbuffer 中输入什么值?
同样在lsbsndfilelibrary 中,读取波形文件的函数需要提供名为frame的变量。
即
samples=sf_readf_float(file,fptr,frames);
如果我输入 frames=256,那么 fptr 中总是返回 64 个样本,其余的都是垃圾,而 read 函数的返回值是 256。 我已经检查了以下代码
memcpy(array,fptr,samples); //samples returned are 256 always but first 64 contain data
现在数组[0] 到数组[63] 包含值,数组[64] 到数组[255] 在文件读取的每次迭代中包含空值。 现在我必须将读取的数据写入 portaudio 音频播放功能,然后 framesperbuffer 应该填写什么。
另外在某些情况下我需要处理数据并将样本减少到 32(当我消耗两个样本以形成一个输出样本时)那么我应该在 framesperbuffer 变量中输入什么值?
【问题讨论】:
标签: c++ visual-c++ portaudio libsndfile