2
我遇到了导致内存错误的代码问题。我相信这是由这个功能引起的(见下文)。PyAudio内存错误
def sendAudio(): p = pyaudio.PyAudio() stream = p.open(format = FORMAT, channels = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) data = stream.read(chunk) client(chr(CMD_AUDIO), encrypt_my_audio_message(data)) def keypress(event): if event.keysym == 'Escape': root.destroy() if event.keysym == 'Control_L': #print("Sending Data...") sendAudio() #print("Data Sent!")
该功能所做的功能是从麦克风中读取,然后通过网络发送该数据。但是,由于任何时候按键被按下并且有数据发送它(这可能是白噪声等)。有没有办法我可以让它不那么糟糕我不知道这是使用按键我的意思是这种情况的正确方法。
Thnak您的回复我的错误是
Exception in thread Thread-1: Traceback (most recent call last): File "C:\Python27\lib\threading.py", line 552, in __bootstrap_inner self.run() File "C:\Python27\lib\threading.py", line 505, in run self.__target(*self.__args, **self.__kwargs) File "chat.py", line 62, in server frames_per_buffer = chunk) File "C:\Python27\lib\site-packages\pyaudio.py", line 714, in open stream = Stream(self, *args, **kwargs) File "C:\Python27\lib\site-packages\pyaudio.py", line 396, in __init__ self._stream = pa.open(**arguments) IOError: [Errno Insufficient memory] -9992
喜TY为我的错误被张贴在我的编辑 – Andrew
@Andrew回复:另外,在缓冲区上的白噪声四溢,可以通过捕捉异常并返回一个空流处理时不当然,如果你已经尝试过这种方法,但是可能会减少'stream.read'调用中的块大小。 – ars