我在Android项目中使用Superpowered音频API。超级动力API - SuperpoweredDecoder :: decode在文件结尾处不返回0
我想使用SuperpoweredDecoder
类加载一个小的wav文件(10毫秒的长度)。如果我理解正确,我应该在循环中调用decode
方法,直到它返回0作为文件结尾。
我的小文件已经在第一轮完整读取,但decode
一次又一次返回1(SUPERPOWEREDDECODER_OK)。如果我拨打decode
一次,而没有while
音频数据按照需要被读入,但这只适用于非常短的音频样本。
SuperpoweredDecoder *decoder = new SuperpoweredDecoder();
decoder->open(click1Path, false, click1Offset, click1Length, 0);
while(decoder->decode(intBuffer, &samplesDecoded) == SUPERPOWEREDDECODER_OK) {
//do something with intBuffer
}
http://superpowered.com/docs/class_superpowered_decoder.html
作为一种变通方法我用解码样本作为断点条件的数量在循环的末尾:'如果(samplesDecoded == 0)break;'我不认为这是它的意图被使用的方式,但至少它是有效的。 – Nick