使用pygame实现音乐播放器(一)

目录

一、pygame的安装

1 图形界面安装

2 命令行安装

3 pygame最简结构

二、音乐播放器的实现

1 图片显示

2 播放音乐


Pygame 是一组用来开发游戏软件的Python程序模块,基于 SDL库的基础上开发。允许你在Python程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块可以支持多个操作系统。

开发环境:python3.7 + pycharm社区版

一、pygame的安装

1 图形界面安装

在pycharm中选择File---settings

2 命令行安装

在terminal中执行:

pip install pygame -i https://pypi.douban.com

3 pygame最简结构

新建一个py文件,按如下所示键入代码:

pygame基本结构包括三部分:

  1. 初始化pygame
  2. 创建游戏窗口
  3. 创建游戏循环

二、音乐播放器的实现

实现的播放器如下所示:

项目的结构:

实现播放器要解决以下问题:

  1. 如何现实图片
  2. 如何播放音乐
  3. 如何判断鼠标是否点击了按钮
  4. 如何现实文字
  5. 如何实现进度条

1 图片显示

图像是游戏中⾮常重要的资源,图像可能就是⼀些背景、角色等。pygame支持以下格式图像:jpeg、png、bmp、gif等。通常要显示一幅图⽚,分三个步骤:

 # 显示背景
# 1.加载图片
background = pygame.image.load("images/player.png")  

# 2 把图片贴到窗口上
# 参数:要显示的图片对象,在目标窗口的坐标
screen.blit(background,(0,0))  

# 3 刷新屏幕
pygame.display.flip()  

完整代码:

# 导入pygame
import pygame

#rect描述对象位置,参数包括left(x坐标),top(y坐标),width,height
WINDOW = pygame.Rect(0,0,480,380)

def main():
    global index
    index = 0  # 默认是第一首歌曲的下标
    # 1. 初始化pygame的各个模块
    pygame.init()

    # 2 建立一个游戏窗口
    screen = pygame.display.set_mode(WINDOW.size)
    # 设置窗口标题
    pygame.display.set_caption("音乐播放器")

    # 显示背景
    background = pygame.image.load("images/player.png")  # 加载图片
    screen.blit(background,(0,0))  # 把background贴到窗口上
    pygame.display.flip()  # 刷新屏幕

    # 3 建立一个游戏循环
    running = True
    while running:
        # 处理用户的事件
        for event in pygame.event.get():
            # type事件类型
            if event.type == pygame.QUIT:
                running = False


if __name__ == '__main__':
    main()

运行就可以看到界面了:

2 播放音乐

播放音乐使用mixer模块,其中常用的方法:

pygame.mixer.music.load(file) 使用文件名作为参数载入音乐 ,音乐可以是mp3等格式
pygame.mixer.music.play()     播放载入的音乐pygame.mixer.music.stop() 停止播放,
pygame.mixer.music.pause()     暂停播放。pygame.mixer.music.unpause() 取消暂停。
pygame.mixer.music.set_volume(value) 来设置音量,音量value的范围为0.0到1.0。
pygame.mixer.music.get_volume() 获取音量大小。
pygame.mixer.music.get_pos()    获取播放的时长,单位毫秒

因为要播放的不是一首歌曲,所以可以定义一个全局变量保存歌曲列表。定义一个函数完成歌曲列表的加载

song_list = []  # 歌曲列表
# 加载歌曲列表
def load_songs():
    songs = os.listdir("music")
    songs = ["music/"+song for song in songs]
    song_list.extend(songs)
    
# 播放指定的歌曲
def play(index):  # index当前歌曲的索引
    pygame.mixer.music.stop()
    # 播放音乐
    music = pygame.mixer.music.load(song_list[index])
    pygame.mixer.music.play()

主函数:

def main():
    index = 0  # 默认是第一首歌曲的下标
    # 1. 初始化pygame的各个模块
    pygame.init()

    # 2 建立一个游戏窗口
    screen = pygame.display.set_mode(WINDOW.size)
    # 设置窗口标题
    pygame.display.set_caption("音乐播放器")

    # 显示背景
    background = pygame.image.load("./images/player.png")  # 加载图片
    screen.blit(background,(0,0))  # 把background贴到窗口上
    pygame.display.flip()  # 刷新屏幕

    # 加载歌曲列表并播放第一首歌曲
    load_songs()
    play(index)

    # 3 建立一个游戏循环
    running = True
    while running:
        # 处理用户的事件
        for event in pygame.event.get():
            # type事件类型
            if event.type == pygame.QUIT:
                running = False

到现在为止,我们已经可以播放音乐了

猜你喜欢

转载自blog.csdn.net/chengshaolei2012/article/details/114144064
今日推荐