今天下午也是闲来没事听音乐,就突发奇想自己写一个音乐播放器,这里就讲一下写这个播放器时所用到的模块及编写过程。
播放器用到了os模块,pygame模块还有sys模块。
首先当然是先调用模块
使用import进行调用模块,如果没有该模块则需要安装该模块
pip install 模块名
pygame.mixer.init() #对pygame进行初始化操作
pygame.mixer.music.load(path) # 加载音乐
pygame.mixer.music.play()播放载入的音乐
import pygame
def music(path):
pygame.mixer.init()
pygame.mixer.music.load(path)
pygame.mixer.music.play()
i = input("")
if __name__ == '__main__':
path = "E:\xxx\xxx.mp3"
music(path)
i = input("") 写它的原因是不让程序终止,不然音乐还没播放就退出程序了
上面的代码已经可以初步的进行播放音乐了,但如果只是播放音乐远远不能满足我,我还要它能够暂停播放、继续播放、以及换下一首。
想要完成换歌的功能那就需要多首音乐,而这些音乐就要在一个文件夹里面,但是要怎么把这些音乐一个一个的读取出来呢?
这里就使用到了os模块中的listdir方法。
import os
path = os.listdir("文件夹路径") # 必须是绝对路径
os.listdir读取出来的文件会放在一个列表里面
path = ["aaa.mp3", "bbb.mp3", "ccc.mp3", ……]
这时候我们就需要一个一个的进行提取出来再进行播放
这里就用到了索引,如下
import pygame
import os
def music(path, option="3"):
a = 0 # 索引默认为0
while True:
if option == "3":
paths = path[a] # 第一次运行会先提取出索引为0的音乐进行播放
a += 1 # 索引加一
path1 = f"{path_s}\\" + paths # 音乐路径+音乐 例:D:\xxx\ + aa.mp3
pygame.mixer.init()
pygame.mixer.music.load(path1)
pygame.mixer.music.play()
option = input()
if __name__ == '__main__':
path_s = input("请输入歌曲路径:")
path = os.listdir(f"{path_s}\\") # 两个斜杠转义为一个斜杠 \\ = \
music(path)
下面就是播放器的源码
#!E:\python3\python.exe
# -*-coding:utf-8-*-
import pygame
import sys
import os
print("原创作者:听雨是菜鸡")
print("1 == 暂停播放\n"
"2 == 继续播放\n"
"3 == 下一首\n"
"4 == 退出")
def music(path, option="3"):
a = 0
while True:
if option == "3":
paths = path[a]
a += 1
path1 = f"{path_s}\\" + paths
# print(path1)
pygame.mixer.init()
pygame.mixer.music.load(path1)
pygame.mixer.music.play()
option = input("请输入:")
if option == "1":
pygame.mixer.music.pause()
elif option == "2":
pygame.mixer.music.unpause()
elif option == "4":
sys.exit("退出播放")
if __name__ == '__main__':
path_s = input("请输入歌曲路径:")
path = os.listdir(f"{path_s}\\")
music(path)
本人也是一个初学者,文章哪里写的不对还请见谅
欢迎大佬在评论区留言