繁体   English   中英

使用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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM