我写了一个程序,使用 pyaudio 同时录制和播放音频信号。由于某些未知原因,有时在播放信号时程序会因以下错误而崩溃:
Unhandled exception at 0x72A6AE7A (msvcr90.dll) in python.exe: 0xC0000005: Access violation reading location 0x02F4DB94.
该程序使用库 pygame、pyaudio、numpy
有没有办法了解问题到底出在哪里?谢谢你,内塔内尔
我写了一个程序,使用 pyaudio 同时录制和播放音频信号。由于某些未知原因,有时在播放信号时程序会因以下错误而崩溃:
Unhandled exception at 0x72A6AE7A (msvcr90.dll) in python.exe: 0xC0000005: Access violation reading location 0x02F4DB94.
该程序使用库 pygame、pyaudio、numpy
有没有办法了解问题到底出在哪里?谢谢你,内塔内尔
这比正确答案更像是一种解决方法,但是:当使用 pyaudio 的“阻塞”机制播放信号时,问题不再存在,即:打开类似以下的流:
stream = self.player.open(format = pyaudio.paFloat32, channels = 2, rate = FS, output = True, frames_per_buffer = CHUNK)
然后玩类似的东西:
while True:
a = self.chunk_queue.get_nowait()
self.stream.write(a)
使用非阻塞模式播放(通过为流配置回调函数)似乎是崩溃的根源。