Python:使用Winsound在内存中播放WAV-SND_MEMORY

我正在尝试从内存而不是文件播放wav文件.这是我尝试过的方法,但是不起作用.
>>> with open('my/file/dir/sound.wav','rb') as f:
>>> data = f.read()
>>> data = base64.b64encode(data)
>>> data = data.decode('UTF-8')
因此,现在数据是一个字符串对象,表示音频wav文件的字节.
>>> winsound.PlaySound(data,winsound.SND_MEMORY)
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
RuntimeError: Failed to play sound
请帮忙.我要去哪里错了?
编辑:没关系. It’s a bug.
解决方法:
据我了解,问题在于以下几行:
>>> data = data.decode('UTF-8')
使用base64.b64encode()进行编码时,应使用base64.b64decode()进行解码.
因此,代码可能是:
with open('my/file/dir/sound.wav','rb') as f:
data = base64.b64encode(f.read())
winsound.PlaySound(base64.b64decode(data), winsound.SND_MEMORY)
我相信它可以解决问题.