Skip to main content
 首页 » 编程设计

python之如何正确使用 struct.pack/unpack 和 pyaudio

2025年05月04日13me-sa

我的目标是将pyaudio提供的字符串正确解压为int16做一些修改,然后重新打包播放。

这是我到目前为止得到的(从其他帖子复制的代码):

#data contains my string of interleaved int16 data 
 
#this code should unpack it accordingly 
# 1 short out of each 2 chars in data 
count = len(data)/2 
format = "%dh"%(count) #results in '2048h' as format: 2048 short 
shorts = struct.unpack(format, data) 
 
#here some modifications will take place but are left out to test packing 
 
#now i need to pack my short data back to pyaudio compliant string 
#i have tried the following with no success. just random noise 
struct.pack(str(len(shorts)*2) + "s", str(shorts)) 

现在我的问题:

  • struct.pack 将我的数据返回到 pyaudio 字符串的正确参数是什么?

请您参考如下方法:

好的,我在其他地方找到了答案:

struct.pack("%dh"%(len(shorts)), *list(shorts)) 

为 pyaudio 生成格式正确的字符串。

不过,我会很乐意接受任何其他解释函数调用及其正确用法的答案!