使用PyAudio播放wav文件的分段错误

时间:2018-06-05 09:40:28

标签: python pygame pyaudio

我正在使用PyAudio播放本地.wav文件。有时它会中止错误报告,如:

  

python(94397,0x7fffb955a3c0)malloc:***对象0x7f9cb3001c00的错误:释放对象的校验和不正确 - 对象可能在被释放后被修改。   ***在malloc_error_break中设置断点以进行调试

或简单地"分段错误:11"。

代码完全是以下示例代码:

import pyaudio
import wave

chunk = 1024
f = wave.open(r"1.wav","rb")
p = pyaudio.PyAudio()
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),
            channels = f.getnchannels(),
            rate = f.getframerate(),
            output = True)
data = f.readframes(chunk)

while data:
    stream.write(data)
    data = f.readframes(chunk)

stream.stop_stream()
stream.close()

p.terminate()

" 1.wav"是一个少于1秒的节拍器咔嗒声。

顺便说一下,声音总是伴随着一些令人讨厌的开裂声,所以我无法获得干净的节拍器点击。

我也尝试过使用PyGame模块,但总是失败,错误与第一个完全相同。代码:

import pygame
pygame.mixer.init(frequency=44100, size=-16, channels=2, buffer=4096)
pygame.mixer.music.load("2.wav")
pygame.mixer.music.play()
pygame.event.wait()

0 个答案:

没有答案