繁体   English   中英

如何强制str为pygame.mixer(Python)的正确类型?

[英]How do I coerce str to correct type for pygame.mixer (Python)?

我有一些可以在Windows中使用以下代码的python代码:

winsound.PlaySound(a_sound, winsound.SND_MEMORY)

当然,在Linux中这是行不通的。 我尝试了以下操作(使用http://www.pygame.org/docs/ref/mixer.html中的文档作为指南):

import pygame
pygame.init()
sound = pygame.mixer.Sound(a_sound)
clock = pygame.time.Clock()
sound.play()
while pygame.mixer.get_busy():
    clock.tick(30)

但我得到:

TypeError: must be string without null bytes, not str

a_sound不是文件名,而是一个<type 'str'> type'str <type 'str'>包含未压缩的PCM数据(带有正确的RIFF.WAV标头)

如何使用pygame.mixer正确呈现数据?

Sound需要文件名或类似文件的对象。 您可以使用StringIO从字符串创建后者:

import cStringIO
...
sound = pygame.mixer.Sound(cStringIO.StringIO(a_sound))

暂无
暂无

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

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