python - "Message Must be multiple of 16"使用 Python 通过网络加密音频

标签 python pyaudio

我正在使用 Python 通过网络发送加密的音频。这个应用程序暂时运行然后中断说它必须是 16 的倍数。

不确定我做错了什么。或者在哪里查看代码来解决这个问题。

如果您能提供任何帮助,我将不胜感激

编辑 * 如果有人有兴趣看我做了一个谷歌代码项目,我相信我现在可以使用它了

http://code.google.com/p/mii-chat/

最佳答案

msg = conn.recv(2024)
if msg:                
    cmd, msg = ord(msg[0]),msg[1:]
    if cmd == CMD_MSG:
        listb1.insert(END, decrypt_my_message(msg.strip()) + "\n")

上面的代码片段读取了 2024 字节的数据(不是 16 的倍数),然后(如果“if”语句为真)然后使用 msg.strip() 作为参数调用 decrypt_my_message。然后 decrypt_my_message 提示它被赋予了一个长度不是 16 的倍数的字符串。(我猜这就是问题所在。查看回溯以查看这是否是导致异常的行)。

您需要使用长度为 n*16 的字符串调用 decrypt_my_message。

您可能需要重新考虑读取流的逻辑 - 或者在中间有一些东西将对 decrypt_my_message 的调用缓冲到 n*16 block 中。

关于python - "Message Must be multiple of 16"使用 Python 通过网络加密音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628548/

相关文章:

python - 如何使用 ipaddress 模块从 192.168.0.0/24 网络中分割出最后 11 个 IP?

python : PortAudio + Opus encoding/decoding

python - pyaudio 改变调用回调函数的样本数

python - 将多声道 PyAudio 转换为 NumPy 数组

python - 在 python 上使用参数调用函数

python - 从一维图到二维掩模

python - 如何从 PyAudio 中的连续声音数据中删除爆音

python - 使用 PyAudio 流式传输网络广播

python - 如何在 Python 中声明一个数组?

python - 从 csv 中删除单行而不复制文件