oko*_*man 5 python floating-point buffer list
我正在玩PortAudio和Python.
data = getData()
stream.write( data )
Run Code Online (Sandbox Code Playgroud)
我希望我的流播放声音数据,用Float32值表示.因此我使用以下功能:
def getData():
data = []
for i in range( 0, 1024 ):
data.append( 0.25 * math.sin( math.radians( i ) ) )
return data
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,因为stream.write
想要传入缓冲区对象:
TypeError: argument 2 must be string or read-only buffer, not list
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何将我的浮动列表转换为缓冲区对象?
import struct
def getData():
data = []
for i in range( 0, 1024 ):
data.append( 0.25 * math.sin( math.radians( i ) ) )
return struct.pack('f'*len(data), *data)
Run Code Online (Sandbox Code Playgroud)