如何解析输入字符串缓冲区作为fread将文件缓冲区?

时间:2014-05-06 08:26:33

标签: python c string buffer

我正在尝试调整下面的代码来删除“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!

当我读取文件参数时,一切都很简单,但现在我想读取缓冲区字符串。

0 个答案:

没有答案