pygame简易音乐播放

来源:互联网 发布:批量条码生成软件 编辑:程序博客网 时间:2024/06/06 06:38

pygame简易音乐播放

今天写了一个简易的音乐播放程序,能实现鼠标左击播放一种音效,右击播放另一种音效,按下空格键可以暂停和播放背景音乐。新学了两个类。一个是pygame.mixer.Sound类,用于播放音效,官方文档介绍:http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound.set_volume; 另一个是pygame.mixer.music类。用于播放背景音乐,官方文档介绍:http://www.pygame.org/docs/ref/music.html。
music类中几个常用的方法:1.pygame.mixer.music.load(filename), 载入背景音乐,最好载入ogg格式的音频,mp3格式的音频受限制 2.pygame.mixer.music.play()播放背景音乐,3.pygame.mixer.music.stop()关闭音乐播放,4,pygame.mixer.music.pause()暂停音乐播放 5,pygame.mixer.music.unpause()恢复音乐播放6pygame.mixer.music.set_volume(value),调节声音度,value的值为 0 - 1.
Sound类的方法和music方法类似,就不一一介绍了,详情看pygame官网介绍
简易播放器功能实现顺序:创建窗口并填充背景色 -> 播放背景音乐 -> 载入播放和暂停图片 -> 设置空格暂停播放背景音乐并刷新相应的图片 -> 设置鼠标左击和右击切换音乐
代码如下:
# -*- coding: utf-8 -*-# @Author: Four Leaf Clover# @Date:   2017-11-11 09:27:37# @Last Modified by:   Administrator# @Last Modified time: 2017-11-11 12:05:45import pygameimport sysfrom pygame.locals import *# pygame和pygame.mixer初始化pygame.init()pygame.mixer.init()# 设置及播放背景音乐pygame.mixer.music.load("bg_music.ogg")pygame.mixer.music.set_volume(0.2)# 设置音量pygame.mixer.music.play()# 播放音乐# 设置两种不同的音效left_sound = pygame.mixer.Sound("loser.wav")left_sound.set_volume(0.2)right_sound = pygame.mixer.Sound("laugh.wav")right_sound.set_volume(0.2)# 设置界面窗口bg_size = width, height = 300, 200bg_rgb = (255, 255, 255)screen = pygame.display.set_mode(bg_size)pygame.display.set_caption("Music - Four Leaf Clover")# 创建设置帧率对象clock = pygame.time.Clock()# 创建播放和暂停图片surface对象play_image = pygame.image.load("play.png").convert_alpha()pause_image = pygame.image.load("puse.png").convert_alpha()# 获取播放和暂停矩形框pause_rect = pause_image.get_rect()pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2# 定义播放标志位pause = Falsewhile  True:# 查找队列事件for event in pygame.event.get():# 查找点击关闭窗口事件if event.type == QUIT:sys.exit()# 查找鼠标左右击事件if event.type == MOUSEBUTTONDOWN:# 检测鼠标左击是否按下if event.button == 1:left_sound.play()# 检测鼠标右击是否按下if event.button == 3:right_sound.play()# 检测键是否按下if event.type == KEYDOWN:# 检测是否为空格键按下if event.key == K_SPACE:pause = not pause# 填充界面背景screen.fill(bg_rgb)# 空格控制播放和暂停,并显示相应的图片if pause:pygame.mixer.music.pause()screen.blit(pause_image, pause_rect)else:pygame.mixer.music.unpause()screen.blit(play_image, pause_rect)# 刷新缓冲区图像pygame.display.flip()# 控制帧率为30帧clock.tick(30)

原创粉丝点击