python-can';我不能让音频播放器工作
一切正常,除了第一首歌结束后下一首歌不播放python-can';我不能让音频播放器工作,python,python-3.x,Python,Python 3.x,一切正常,除了第一首歌结束后下一首歌不播放 import os, random from pygame import mixer from pynput import keyboard startup = 0 pause = 0 volume = 0.5 def Picker(): global startup global volume startup += 1 if startup > 1: ThisSong = random.choic
import os, random
from pygame import mixer
from pynput import keyboard
startup = 0
pause = 0
volume = 0.5
def Picker():
global startup
global volume
startup += 1
if startup > 1:
ThisSong = random.choice(os.listdir("C:\\Users\\...\\Music"))
NextSong = random.choice(os.listdir("C:\\Users\\...\\Music"))
ThisSong = NextSong
if ThisSong != NextSong:
mixer.init()
mixer.music.load("C:\\Users\\...\\Music" + ThisSong)
mixer.music.play(0)
mixer.music.set_volume(volume)
while mixer.music.get_busy():
def on_press(key):
global pause
global volume
if key == keyboard.KeyCode(char='-'):
volume -= 0.1
if volume < 0.1:
volume = 0.1
mixer.music.set_volume(volume)
if key == keyboard.KeyCode(char='='):
volume += 0.1
if volume > 1:
volume = 1
mixer.music.set_volume(volume)
if key == keyboard.KeyCode(char='['):
pause += 1
if pause == 1:
mixer.music.pause()
pause = 2
if pause == 3:
mixer.music.unpause()
pause = 0
with keyboard.Listener(on_press=on_press) as listener: listener.join()
else:
Picker()
else:
pass
Picker()
Picker()
导入操作系统,随机
从pygame导入混合器
从pynput导入键盘
启动=0
暂停=0
体积=0.5
def选择器():
全球创业
全球体积
启动+=1
如果启动>1:
ThisSong=random.choice(os.listdir(“C:\\Users\\\…\\Music”))
NextSong=random.choice(os.listdir(“C:\\Users\\…\\Music”))
这首歌=下一首歌
如果这首歌下声:
mixer.init()
mixer.music.load(“C:\\Users\\…\\music”+这首歌)
混音器。音乐。播放(0)
混音器。音乐。设置音量(音量)
当混音器。音乐。忙碌()
def on_按(键):
全局暂停
全球体积
如果key==keyboard.KeyCode(char='-'):
体积-=0.1
如果体积<0.1:
体积=0.1
混音器。音乐。设置音量(音量)
如果key==keyboard.KeyCode(char='='):
体积+=0.1
如果体积>1:
体积=1
混音器。音乐。设置音量(音量)
如果key==keyboard.KeyCode(char='['):
暂停+=1
如果pause==1:
mixer.music.pause()
暂停=2
如果暂停=3:
混音器。音乐。取消暂停()
暂停=0
使用keyboard.Listener(on_press=on_press)作为侦听器:Listener.join()
其他:
选择器()
其他:
通过
选择器()
选择器()
我无法让它工作,我对python非常陌生,所以我可能错过了一些东西
在开始之前很明显:Thx@JGreenwell用于复制代码 好的,首先,我将帮助您清理代码 错误的事情
Picker()
时,它将不会被保存。只需拥有ThisSong,或者将ThisSong和NextSong分配与音量和暂停变量放在一起:True
/False
),暂停代码应如下所示:paused
导入时间
并将时间。sleep(500)
或类似的东西放在while循环中,这样它就不会检查每一秒的分数至于下一首不播放的歌曲,我真的不知道,但我建议在程序运行后在shell中输入
Picker()
(python-I script.py
from CMD,IDLE默认情况下将您留在shell中)。我还建议您真正遵循建议#3,因为将它们放在循环中可能会中断循环并阻止其完成。最重要的是,我要求您通过在代码的每个步骤中添加打印来调试代码:
print(1)
if something:
print(2)
etc...
看看它在哪里阻塞
注:随机点是因为列表中不能有代码,所以我必须退出列表。有效解决方案,以防将来有人和我有相同的问题:)
请将您的代码作为问题中的代码发布,而不是作为缩小屏幕截图的场外链接。请阅读以下内容:和。感谢您的回答!另外,感谢JGreenwell编写我的代码,它昨晚对我不起作用,这就是我发布屏幕截图的原因
pause = not pause
if pause:
# pause
else:
# unpause
print(1)
if something:
print(2)
etc...
from pygame import mixer
from pynput import keyboard
import threading
import random
import os
paused = 0
def player():
song = random.choice(os.listdir("C:\\users\\...\\desktop\\music"))
mixer.init()
mixer.music.load("C:\\users\\...\\desktop\\music\\" + song)
mixer.music.play(0)
while mixer.music.get_busy():
pass
else:
player()
def main():
t = threading.Thread(target = player, name = 'thread1', args = ())
t.start()
main()
def on_press(key):
global paused
if key == keyboard.KeyCode(char='['):
paused = not paused
if paused:
mixer.music.pause()
else:
mixer.music.unpause()
with keyboard.Listener(on_press=on_press) as listener: listener.join()