pygame简易音乐播放

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:45

import pygame
import sys
from 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, 200
bg_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 = False

while  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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零涂

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值