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