我正在尝试从pygame的缓冲区播放声音。以下代码可以正确播放一次声音,但结果为TypeError: must be string without null bytes, not str
。
f = open('sound.wav', 'rb')
data = f.read()
buffer = data[44:len(data)] # start after header
pygame.mixer.Sound(buffer).play()
因为在正确播放一次声音之后会发生错误,所以我怀疑
play()
期望buffer
更长。
最佳答案
我认为您使用内置在函数python
中的buffer
作为变量。
这是buffer上的python文档。
我能够复制您的错误TypeError: must be string without null bytes, not str
修改后的代码在使用缓冲区而不是变量时不会出错。
import pygame
pygame.mixer.init()
f = open('sound.wav', 'rb')
data = f.read()
#buffer = data[44:len(data)] # start after header
myBuffer = buffer(data , 44,len(data))
pygame.mixer.Sound(myBuffer).play()
关于python - 使用pygame从缓冲区播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294658/