解决python播放音乐的问题

又是一年程序大作业,还依稀记得去年的这段时间,我也发了一篇关于C语言播放音乐函数的问题,有兴趣的可以去看一下-.-解决C语言播放音乐问题
你要问我为什么老想着播放音乐,因为本人编程技术菜,还又要想着加一些花里胡哨的东西,所以只能添加一个播放音乐的功能了。话不多说进入正文

第一种使用pygame库(也就是python的游戏开发库1)来进行播放音乐

首先需要导入两个库

import pygame.mixer
import time

然后新建一个播放音乐函数

def playSong():
	# 音乐程序初始化
	'''
	我顺便还查了一下那个路径前面的r是干嘛的
	开文件的时候open(r'c:\....')加r'可以防止路径中出现'\t'的话 \t会被转义
    而加了'r'之后'\t'就能保留原有的样子在字符串赋值的时候 前面加'r'可以防止
    字符串在时候的时候不被转义 原理是在转义字符前加'\'
	'''
    filepath = r"你音乐的绝对路径或者相对路径"
    pygame.mixer.init()
    # 播放音乐
    flag = pygame.mixer.music.load(filepath)
    pygame.mixer.music.play(start=0.0)
    # 需要让程序停止一定时间执行,否则函数一下就执行完了无法播放音乐了
    time.sleep(300)
    pygame.mixer.music.stop()

另一种代码就是,你不需要调用time库,因为有可能你设置的延迟时间与音乐播放的时间差距很大,导致关闭不及时

 flag = False
    # 音乐程序初始化
    filepath = r"./lemon.mp3"
    pygame.mixer.init()
    while 1:
        if flag == 0:
            # 播放音乐
            pygame.mixer.music.load(filepath)
            pygame.mixer.music.play(start=0.0)
        # 判断音乐是否在播放,如果播放返回0
        '''所以下面的逻辑就是,设置一个死循环,然后通过内部函数来判断音乐播放完毕,从而进行操作,然后最终有break跳出死循环
        '''
        if pygame.mixer.music.get_busy():
            flag = True
        else:
            if flag:
                pygame.mixer.music.stop()
                break

第二种使用playsound库

from playsound import playsound
playsound("lemon.mp3")

这种方式播放有一个缺点就是,如果你设置延迟执行,音乐是可以播放的,但是在你播放音乐的期间,其它代码就无法进行执行,如果你是单纯的想播放音乐那没关系

你可能感兴趣的:(Problem,Solving,多线程,pygame)