【问题标题】:Sound File not playing in pygame声音文件不在pygame中播放
【发布时间】:2014-02-01 15:54:47
【问题描述】:

我在使用 pygame 播放声音时遇到了很多麻烦。

import pygame

pygame.init()
pygame.mixer.init()

sounda = pygame.mixer.Sound('G:/Portable Python/asharp.ogg') #Path and Sound File
soundb = pygame.mixer.Sound('asharp.ogg') #This also slips through without prompting an error, presumably both cmds work


sounda.play()
soundb.play()

这是我一直在玩的代码,我无法让声音文件在我的 Windows 7 64 位桌面上运行 2.7.5 的 Portable python 上工作。我也在我的 Linux 笔记本电脑上试过这个,当播放声音文件时,我只听到一个提示音,而不是实际的声音文件。

有人有什么想法吗?

edit 我想提一些关于声音文件的事情。基本上我使用ableton插件'vanguard'创建了一个合成器。然后我所做的就是将该合成器上的一个音符单独导出到 .wav 文件中。然后为了让它们变成 .ogg 格式,我使用 Audacity 剪掉了这些笔记上的多余空间,然后将它们从 Audacity 中导出为 .ogg 格式。此外,当我创建 .wav 文件时,我以 70bpm 的速度播放它们。我不确定这是否与我在 python 中得到的输出有关。我需要完成一些作业,如果可以的话,我会尝试其他 .ogg 声音文件。

【问题讨论】:

  • 出于好奇,您的窗口计算机上的音量是否已调高而未静音?
  • 啊哈哈,是的,它出现了。这是我执行 sounda.play() 时 shell 输出的内容
  • 您是否尝试过添加频道以播放此声音?您还确保.ogg 文件可以在 python 应用程序之外正确播放吗?
  • 是的,.ogg 文件确实在 ubuntu 12.04 的 rythym 盒子上播放,它在我的 Windows 计算机上的 VLC 上运行。关于如何添加通道来播放声音的任何说明?

标签: python audio pygame ubuntu-12.04 windows-7-x64


【解决方案1】:

好的,对于频道,这就是您基本上设置它的方式。请注意,在每个频道上,您一次只能发布一个声音,并且尝试做更多将导致第一次停止。但是,您可以创建多个通道来播放声音。

更多信息请访问:http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Channel

channelA = pygame.mixer.Channel(1)
sounda = pygame.mixer.Sound("asharp.ogg")
channelA.set_volume(1.0)
channelA.play(sounda)

【讨论】:

    【解决方案2】:

    sounda.play() 返回播放声音所必需的对象。有了它你还可以查明声音是否还在播放:

    channela = sounda.play()
    while channela.get_busy():
       pygame.time.delay(100)
    

    对于 soundb 也是一样的...

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 1970-01-01
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多