【问题标题】:How to make playsound not cut the end of mp3 file?如何使播放声音不剪切 mp3 文件的结尾?
【发布时间】:2021-10-07 21:16:32
【问题描述】:

当我在 Python 中使用 playsound 库并尝试播放 mp3 格式的音频时,我的音频在结束前几分钟就停止了。 我该如何解决这个问题?

from playsound import playsound

word = input(">")
while 0<1:
    if(word == "hello"):
        playsound('greetings.mp3')  

【问题讨论】:

  • 如果声音被截断,那是因为它在.mp3文件中是这样的。
  • 该库在不同平台上的实现方式不同,因此包括您使用的操作系统可能会有所帮助。在不知道您使用的是哪个系统的情况下,我们只能提供一般性建议,但一种想法是 MP3 在开头和结尾处有间隙,如果不考虑这些间隙,可能会在播放音频时出现问题。您是否检查过来自许多不同来源的许多不同 MP3,包括在另一个音频播放器中检查它们以确保没有问题?这是您应该在原始问题中包含的所有信息。
  • @RandomDavis 当我播放原始 mp3 时,最后没有剪辑,但是当我在我的 python 代码中的翅膀个人平台上播放它时,它只会剪辑 mp3 音频的最后几分钟。有什么办法可以防止mp3文件被剪切?
  • 再说一次,如果您不知道您使用的是哪个操作系统/平台,我们将无法为您提供帮助

标签: python python-playsound


【解决方案1】:

我最近在 Windows 10 上使用 playsound 模块时遇到了几次同样的问题。我发现,在播放较短(大约 3 秒)的音频剪辑时,playsound 会剪掉它的结尾尽管原始音频是完整的。我注意到两个有趣的方面:​​

  1. 对于同一个音频剪辑,音频被剪切的时间因运行而异。
  2. 我无法在播放较长的音频时重现此问题,它仅出现在长达 5 秒左右的音频中。 (虽然说实话,我并没有尝试太多的选择。)

我想出的一种解决方法似乎对我来说非常有效:我在playsound.playsound() 之后添加了一个简单的time.sleep(1),如下所示:

import playsound 
import os 
import time 

DIR_NAME = "path/to/dir/where/you/store/audio/files/that/you/want/to/play"

playsound.playsound(os.path.join(DIR_NAME,'myaudio_001.mp3'))
time.sleep(1)

请注意,根据您的音频长度,您可能希望将等待时间从 1 秒增加到多一点。

【讨论】:

  • playsound 中是否无法知道何时完成,例如 pygame.mixer.music.get_busy()
猜你喜欢
  • 1970-01-01
  • 2011-01-07
  • 2021-11-05
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
相关资源
最近更新 更多