import pygame
import time
musicList = [r"E:\KuGou\gequ\周杰伦 - 牛仔很忙.mp3",
r"E:\KuGou\gequ\张宇 - 趁早.mp3",
r"E:\KuGou\gequ\林俊杰 - 学不会.mp3",
r"E:\KuGou\gequ\刘德华 - 独自去偷欢 - 2007中国巡回演唱会.mp3"]
class musicPlay():
def playmusic(self, music):
pygame.mixer.init() #音频初始化
pygame.mixer.music.load(musicList[music]) # 加载音乐文件
pygame.mixer.music.play() # 播放音乐
def pausemusic(self, num):
if num % 2 == 1:
pygame.mixer.music.pause() # 暂停
else:
pygame.mixer.music.unpause() # 取消暂停
def playexit(self):
pygame.mixer.music.stop() # 停止播放
@staticmethod
def display():
print("""
欢迎
******************
* 音乐播放器 *
******************
""")
@staticmethod
def choose():
print("""
****************************
* 1.播放 2.暂停 *
* 3.上一曲 4.下一曲 *
* 5.退出 *
****************************
""")
musicplay = musicPlay()
pauseNum = 0
music = 0 # 音乐默认从第一首开始
musicplay.display()
time.sleep(3)
while True:
musicplay.choose()
operation = input("请输入您的操作:")
if operation == '1':
musicplay.playmusic(music)
elif operation == '2':
pauseNum += 1
musicplay.pausemusic(pauseNum)
elif operation == '3':
pauseNum = 0 # 上下曲重新给pauseNum赋值,防止出现第一次暂停后换曲再暂停时暂停不了
if music == 0:
music = len(musicList) - 1 # 第一首时,再切上一曲则重新给music
else:
music -= 1
musicplay.playmusic(music)
elif operation == '4':
pauseNum = 0
if music == len(musicList) - 1:
music = 0
else:
music += 1
musicplay.playmusic(music)
else:
musicplay.playexit()
break
功能介绍:可以切换上下曲,暂停播放,但是不能自动播放下一曲
music文件加载还可以用下面这种方式:
import os
path = r"E:\KuGou\gequ"
# 获取路径下的文件
filePath = os.listdir(path)
musicList = [] # 存储音乐文件路径
for musicPath in filePath:
# 对每个文件进行路径拼接
musicList.append(path + "\\" + musicPath)
pygame加载方法在Python歌词解析器(加音频播放)有介绍