在 python 中,在下一个之前完成声音?

2024-03-11

在Python/pygame中,我希望重复某个wav文件(由pygame.mixer.Sound("foo.wav").play()循环播放,并让它们一个接一个地播放,最好是在最后一个完成后或默认延迟(1500 毫秒有效)

到目前为止,解释一下,我有这个:

    for x in range(0, 5):
        pygame.mixer.Sound("foo.wav").play()

然而,当它播放时,它会同时播放。

使用 pygame.time 进行延迟会挂起窗口,就像 tkinter .after(1500) 一样,我似乎无法找到一种直接的方法来使用库或 python 来执行此操作,甚至无法找到一个播放一些音调的示例按我的意愿延迟。我可以用更“标准”的 Python 音频插件来代替 pygame,或者如果需要按下按钮,或者需要黑客单独使用 pygame 混合器来完成这样的事情,则可能使用线程。

如果需要的话,一些方便的参考:http://www.pygame.org/docs/ref/music.html http://www.pygame.org/docs/ref/music.html https://docs.python.org/2/library/tkinter.html https://docs.python.org/2/library/tkinter.html


最直接的方法似乎是通过 Tkinter 获取每个声音的长度并在给定时间过后播放下一个声音after method.

self.sound_queue = [pygame.mixer.Sound(s) for s in ('foo.wav', 'bar.ogg', 'baz.mp3')]

def play_queue(self, q, num=0)
    sound = q[num]
    duration = int(sound.get_length() * 1000)
    sound.play()
    if num < len(q)-1:
        self.root.after(duration, self.play_queue, q, num+1)

self.play_queue(self.sound_queue)

您还可以看看pygame.mixer.Channel.queue() http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Channel.queue and pygame.mixer.Channel.set_endevent http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Channel.set_endevent,因为这些可能是做这类事情的预期方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中,在下一个之前完成声音? 的相关文章

随机推荐

  • Jenkins Pipelines:加载外部 Jenkins 管道脚本时重用工作区

    我有以下用例 使用编写的管道脚本签出 拉取某个 Git 修订版 我需要这个 因为我动态检索修订版 从该修订版本中 加载位于之前签出的文件中的 Jenkins pipeline file 该文件将依赖于同一签出版本的文件 因此 从same工作
  • 向流量数据添加自定义属性

    问题 当我将数据传递到 flot 时 如果我可以传递一些我想要访问的补充数据 那将非常方便plotclick事件被触发 My Data 这是一些标准数据 label first data 5 color 123 label first da
  • Windows 批处理脚本:将所有文件的名称、路径、大小和所有者列出到 csv 文件中

    我有一个脚本 可以列出文件夹及其子文件夹下的所有文件 以及一些属性 例如路径 文件名 修改日期和大小 但是 我无法添加一项额外的属性 文件所有者 ECHO off SET v1 dpF SET v2 nxF SET v3 zF for r
  • 在 firestore get 查询中使用通配符

    我想在 firebase 中创建一个云函数 每当用户第一次登录时就会触发该函数 该函数需要将特定用户身份验证中的 UID 添加到 firestore 中特定的现有文档中 问题是需要将 UID 添加到我不知道位置的文档中 我现在的代码并不能完
  • 在 Python 3.6 中使用 pandas.to_sql 将外来(非 ASCII)字符写入 Oracle DB

    我很难从 a 中写入值pandas DataFrame其中包含 Oracle 数据库的非 ASCII 字符 这是一个可重现的示例 给定真实的连接字符串 import pandas as pd from sqlalchemy import c
  • 将自定义视图添加到警报视图

    我有这样的问题 我想在警报视图中显示自定义视图 所以我创建了一个单独的 xib 文件并设计了我的界面 并为其实现了该类 但是当我应用下面的代码时 它给了我一个错误 这是代码 UIAlertView alert UIAlertView all
  • 如何在编辑模式下重新格式化自定义 UITableViewCell 以适应删除控件?

    我有一个自定义 UITableViewCell 其中包含一个 UILabel 其中显示可变数量的文本 单元格的高度是动态计算的 以适应文本量 问题是 UILabel 文本在编辑模式 删除 期间没有重新格式化 如以下屏幕截图所示 我需要使用自
  • Enterprise Java 实体应该是愚蠢的吗?

    在我们遗留的 Java EE 应用程序中 有大量值对象 VO 类 它们通常只包含 getter 和 setter 也许equals and hashCode 这些 通常 是要保存在持久性存储中的实体 根据记录 我们的应用程序没有 EJB 尽
  • 使用 JFreeChart 和 Apache PDFBOX 生成图表

    我需要使用生成图表自由图表 http www jfree org jfreechart 然后使用将它们导出为 PDF阿帕奇PDFBOX http pdfbox apache org 我不想使用 iText 因为它不能在专有软件中使用 我搜索
  • VSCode 亮点

    当我将本地函数导入 vscode 时 其中一些函数会正确突出显示 并允许您使用 CTRL LMB 来引导您找到它们 但其中一些函数却没有正确突出显示 这是否是有原因的 这适用于所有主题 而不仅仅是我正在使用的主题 此外 所有进口功能均可用
  • 创建 Word 文档并从 .NET 应用程序添加图像

    我需要一种生成Word文档 从模板或其他东西 并在特定位置插入图像的方法 有人对执行此操作的最佳方法有任何指示吗 几年前 我参与了一个使用 NET 1 1中的办公自动化的项目 效果确实差得难以形容 我假设 OA 要么得到了改进 要么被更好的
  • Jasper iReport Designer 中的表

    我在 Jasper iReport Designer 中创建了一个表 执行报表时 会多次显示同一个表 虽然只使用了单个数据集和表格 请指导 Thanks 尝试将表格组件放入摘要区域 因为详细信息区域会重复数据集中每一行的记录 如果确实需要将
  • 你最喜欢的 Python 模拟库是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何设置 javac 的 PATH 变量以便我可以手动编译我的 .java 作品?

    这是我的驱动器上的地址 C Program Files Java jdk1 6 0 18 bin 我将如何设置路径变量 以便我可以进入命令窗口 windowskey r cmd 并能够键入以下内容 javac TestApp java 我使
  • 在 Windows 7 上使用 XAudio2 进行构建

    我正在尝试使用以下说明来构建一些使用 XAudio2 并在 Windows 7 上运行的代码 http msdn microsoft com en us library windows desktop ee663275 28v vs 85
  • Android Mapbox SDK v10:归因位置;用户界面设置

    如何调整徽标和属性com mapbox mapboxsdk maps MapView 在较旧的 SDK v9 中 可以通过 XML 属性 或通过以编程方式更改 UiSettings 简单地设置 UiSettings mapbox mapbo
  • 旅行商问题,2-opt算法C#实现

    有人能给我一个旅行商问题的 2 opt 算法的代码示例吗 目前 我使用最近邻来查找路径 但这种方法远非完美 经过一些研究 我发现 2 opt 算法可以将该路径纠正到可接受的水平 我找到了一些示例应用程序 但没有源代码 所以我无聊就写了 它l
  • 在 iOS 中创建 JsonString

    我是 iOS 新手 我创建了一个JSON NSDictionary像这样 NSArray keys NSArray arrayWithObjects User Password nil NSArray objects NSArray arr
  • 如何在 django 视图中使用 celery 存储延迟调用的结果?

    我已遵循以下指南http celeryq org docs django celery getting started first steps with django html http celeryq org docs django ce
  • 在 python 中,在下一个之前完成声音?

    在Python pygame中 我希望重复某个wav文件 由pygame mixer Sound foo wav play 循环播放 并让它们一个接一个地播放 最好是在最后一个完成后或默认延迟 1500 毫秒有效 到目前为止 解释一下 我有