我正在尝试调整下面的代码来删除“fread”函数,因为我的参数不再是“FILE * pcm”而是字节字符串“const char * pcm”。
int32_t pcm_buffer[inputSamples];
while (fread(pcm_buffer, sizeof(short int), inputSamples, pcm)) {
bufSize = faacEncEncode(hEncoder, pcm_buffer, inputSamples, data, maxOutputBytes);
...
}
是否可以在“int32_t pcm_buffer”中使用合适的强制转换从pcm写入char *?
先谢谢
我正在开发一个Python C扩展,用于“即时”编码一些小的音频wav记录到AAC或MP3(输出是一个字节流)。该项目在Github。
第一个版本工作正常,因为我在参数中提供了一个Python File对象:
input_file (type: file)
stream = wav_to_aac(input_file) // OK!
但我需要传递类似文件的文件,例如BytesIO,它不被PyArg_ParseTuple识别为File对象:
input_file (type: _io.BytesIO)
stream = wav_to_aac(input_file) // KO!
所以,我试图在参数中直接给出字节流:
input_file (type: _io.BytesIO)
stream = wav_to_aac(input_file.read()) // KO!
当我读取文件参数时,一切都很简单,但现在我想读取缓冲区字符串。