使用 pygame 从缓冲区播放声音

playing sound from buffer using pygame

我正在尝试从 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()