python中pygame模块编写音乐播放器

今天下午也是闲来没事听音乐,就突发奇想自己写一个音乐播放器,这里就讲一下写这个播放器时所用到的模块及编写过程。

播放器用到了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)

本人也是一个初学者,文章哪里写的不对还请见谅

欢迎大佬在评论区留言

你可能感兴趣的:(python,pygame,开发语言)