Python 如何获取 C 函数返回的指针所指的内容?

2020-04-10 17:20:59 +08:00
 hiwenvv
我查看科大讯飞的语音合成帮助文件,里面有这样一个函数:
const void * data = QTTSAudioGet(sessionID, &audio_len, &synth_status, &ret);
我可以正确的输入参数,但是,我不知道如何获取返回的 data,并将它写入到文件里。
我尝试定义 返回值类型:dll.QTTSAudioGet.restype = ctypes.c_void_p,
但是还是不知道怎么取出里面的数据。
有人能帮助我吗?
2405 次点击
所在节点    Python
5 条回复
ysc3839
2020-04-10 20:03:27 +08:00
看文档,返回的数据是什么类型。
hiwenvv
2020-04-12 09:51:14 +08:00
@ysc3839 看文档,应当是字节流 bytes,具体的,是 WAV 文件的内容。可以进一步提示吗?
ysc3839
2020-04-12 10:16:30 +08:00
那应该还会返回一个长度的,直接读取就好了。
hiwenvv
2020-04-12 11:55:40 +08:00
@ysc3839 问题就出在这里,对我这样的外行来说,我不知道如何写“直接读取”....
我知道他返回了一个字节流,指针是 那个 C 函数的返回值 data,我也知道函数参数里返回了长度 audio_len 。
但是我不会写代码啊。我翻了很多页的百度,也没得到我想要的写法,可能是问题太初级而我太弱鸡了...
ysc3839
2020-04-12 18:14:22 +08:00
这样的话没办法,只能多锻炼搜索能力,我帮你找到了一个
https://stackoverflow.com/a/55128773

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX