Python音频只是让窗户发出噪音

时间:2015-07-03 17:11:34

标签: windows python-3.x audio

所以,我正在使用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 个答案:

答案 0 :(得分: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()