首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python -无法让音频播放器工作

python -无法让音频播放器工作
EN

Stack Overflow用户
提问于 2018-08-22 06:55:26
回答 1查看 40关注 0票数 -3

一切正常,除了第一首歌结束后,下一首歌不再播放。

代码语言:javascript
复制
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()

screenshot of code

我不能让它工作,我对python非常陌生,所以我可能遗漏了一些明显的东西。

EN

回答 1

Stack Overflow用户

发布于 2018-08-23 06:10:57

有效的解决方案,以防将来其他任何人遇到与我相同的问题:)

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51957757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档