Python 音频只会让窗户发出叮叮当当的声音
Posted
技术标签:
【中文标题】Python 音频只会让窗户发出叮叮当当的声音【英文标题】:Python audio just makes the windows ding noises 【发布时间】:2015-07-03 17:11:34 【问题描述】:所以,我正在使用 Python3 制作一些可以播放歌曲的东西。我有它工作,所以如果我按 1,它会播放播放列表,如果我按 2,它会播放第一首歌曲,如果我按 3,它会播放第二首歌曲。它适用于 Circles,但在播放列表中,一旦进入 Bullseye,它就会不断发出叮当声(就像出现通知并点击其他地方一样)。当您按 3 时,它会叮一声并停在那里。我认为这可能与歌曲(BullsEye.mp3)有关,这是我的代码还是其他人之前遇到过这个问题?
from time import *
import winsound
from winsound import *
input = input('1 for playlist - 2 for Circles - 3 for BullsEye ')
var = int(input)
while var==1:
winsound.PlaySound("Circles.mp3", winsound.SND_ALIAS)
winsound.PlaySound("BullsEye.mp3", winsound.SND_ALIAS)
if var==2:
winsound.PlaySound("Circles.mp3", winsound.SND_ALIAS)
if var==3:
winsound.PlaySound("BullsEye.mp3", winsound.SND_ALIAS)
【问题讨论】:
哦,废话,你能改一下标题吗?那是草稿:/ 【参考方案1】:使用winsound.SND_FILENAME
而不是winsound.SND_ALIAS
,如果你想传递一个文件名而不是一个预定义的别名,比如'SystemExit'
,否则如果你传递一个无法识别的别名,它只会播放一个默认的声音(这可能是一个任意的文件名) :
#!/usr/bin/env python3
audio_files = ["Circles.wav", "BullsEye.wav"]
def play(filename):
winsound.PlaySound(filename, winsound.SND_FILENAME)
choice = int(input('1 for playlist - 2 for Circles - 3 for BullsEye '))
if choice == 1:
for filename in audio_files:
play(filename)
elif choice in 2, 3:
play(audio_files[choice-2])
else:
assert 0
注意:PlaySound
播放 wav 文件,而不是 mp3。要使用默认播放器播放 mp3,您可以使用os.startfile()
。
【讨论】:
以上是关于Python 音频只会让窗户发出叮叮当当的声音的主要内容,如果未能解决你的问题,请参考以下文章