python - 如何将数据发送到 wave.writeframesraw(data)

标签 python audio buffer typeerror wave

我正在尝试使用 Python 中的 native wave 模块编写一个 wave 文件,但似乎没有任何文档说明 wave.writeframesraw(data) 的“数据”字段是什么意思,或者帧是什么。由于计算机上的安装问题,我无法使用任何外部模块或库。当我尝试使用在 youtube 上找到的以下示例时,出现错误。

data = [math.sin(x*2*math.pi*440/44100) for x in range(44100)]
#from tutorial:
BinStr = "" #create a binary string
for i in data:
    BinStr = BinStr + str(struct.pack('h', round(i*20000)))
file.writeframesraw(BinStr)


**file.writeframesraw(BinStr)
  File "C:\Python34\lib\wave.py", line 414, in writeframesraw
    data = memoryview(data).cast('B')
TypeError: memoryview: str object does not have the buffer interface**

最佳答案

我相信这个问题与没有设置所有文件参数有关。当我使用 wave.setparams((2, 2, 44100, 0, 'NONE', 'not compressed')) 它可以工作。

关于python - 如何将数据发送到 wave.writeframesraw(data),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751523/

相关文章:

Java复制部分InputStream到OutputStream

python - 为什么 user.is_authenticated 在注销后断言为真

检查输入字符串是否超过缓冲区限制(崩溃)

python - 如何使 python 打印 1 而不是 1.0

java - Java 是否内置了用于音频_合成_的库?

python - 使用触摸传感器在两个音频文件之间切换

vb6 - 向VB6程序添加声音

PHP - 如何有效地读取大型远程文件并在循环中使用缓冲区

python - python独立开发应该选择docker吗?

python - 将文本数据转换为可以在Python中清理的数组?