首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python io.BytesIO和pygame.mixer

python io.BytesIO和pygame.mixer
EN

Stack Overflow用户
提问于 2017-06-11 17:08:26
回答 0查看 1.9K关注 0票数 1

我正在将一个音频mp3文件加载到python io.BytesIO缓冲区中。

然后我想用pygame.mixer多次播放这个音频文件。

它第一次运行得很好,但是看起来pygame.mixer.music.play删除了缓冲区。

源代码如下:

代码语言:javascript
复制
import io
import time
import pygame

with open(path_to_my_mp3_file, 'rb') as in_file:
  buffer = io.BytesIO(in_file.read())

pygame.mixer.init()

pygame.mixer.music.load(buffer)
pygame.mixer.music.play()  # works fine !

time.sleep(1)

pygame.mixer.music.load(buffer) # the buffer seems to be cleared
pygame.mixer.music.play()  

我得到了这个错误:

代码语言:javascript
复制
  File "test.py", line 17, in <module>
    pygame.mixer.music.load(buffer)
pygame.error: Couldn't read from RWops

有什么想法吗?

谢谢

PS:

我试过这个:

代码语言:javascript
复制
with open(path_to_my_mp3_file, 'rb') as in_file:
  buffer = in_file.read()

pygame.mixer.init()

pygame.mixer.music.load(io.BytesIO(buffer))
pygame.mixer.music.play()

time.sleep(1)

pygame.mixer.music.load(io.BytesIO(buffer))
pygame.mixer.music.play()

它可以工作,但我认为这段代码的性能较差

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44482149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档