吴裕雄--天生自然python学习笔记:python 用pygame模块制作一个音效播放器
用 Sound 对象制作一个音效播放器。
应用程序总览
程序在执行后默认会把 WAV 音频文件加载到清单中,单击“播放”按钮可开始
播放,同时显示 “正在播放 xxx 音效”的信息 。
播放过程中,可以通过单击“上一首”“下一首”按钮播放列表中的上一首或下
一首音效;单击“停止播放”按钮可停止播放:单击“结束”按钮则可结束应用程
序井结束音效播放。
def menu(status):
os.system("cls")
print("wav 播放器 {}".format(status))
print("--------------------------------------")
print("1. 播 放")
print("2. 上一首")
print("3. 下一首")
print("4. 停止播放")
print("0. 结束程序")
print("--------------------------------------") def playwav(song):
global status,sound
sound = mixer.Sound(wavfiles[index])
sound.play(loops = 0)
status="正在播放 {}".format(wavfiles[index]) def playNewwav(song):
global status,sound
sound.stop()
sound = mixer.Sound(wavfiles[index])
sound.play(loops = 0)
status="正在播放 {}".format(wavfiles[index]) ### 主程序从这里开始 ### from pygame import mixer
import glob,os
mixer.init() source_dir = "F:\\pythonBase\\pythonex\\ch13\\wav\\"
wavfiles = glob.glob(source_dir+"*.wav")
index=0
status=""
sound = mixer.Sound(wavfiles[index]) while True:
menu(status)
choice = int(input("请输入您的选择:"))
if choice==1:
playwav(wavfiles[index])
elif choice==2:
index +=1
if index==len(wavfiles):
index=0
playNewwav(wavfiles[index])
elif choice==3:
index -=1
if index<0:
index=len(wavfiles)-1
playNewwav(wavfiles[index])
elif choice==4:
sound.stop()
status="停止播放"
else:
break sound.stop()
print("程序执行完毕!")

音乐播放
music 对象
music 除了可播放 OGG 和 WAV 文件外,还可以播放 MP3 文件。 它比较适合播放
较长的音乐,可以调整音乐播放的位置,并且可以暂停播放, 其功能较 Sound 对象强大。
mixer 的 music 对象提供下列方法 :

例如:播放 mario.mp3 歌曲 一次。
from pygame import mixer mixer.init()
mixer.music.load('F:\\pythonBase\\pythonex\\ch13\\mp3\\mario.mp3')
mixer.music.play()
吴裕雄--天生自然python学习笔记:python 用pygame模块制作一个音效播放器的更多相关文章
- 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告
实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL UPDATE 更新
如果需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 插入数据
MySQL 表中使用 INSERT INTO SQL语句来插入数据. 可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 以下为向MySQL数据表插入数据通 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL简介
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子
1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...
- 吴裕雄--天生自然HADOOP学习笔记:基本环境配置
实验目的 学习安装Java 学习配置环境变量 学习设置免密码登陆的方法 掌握Linux环境下时间同步的配置 实验原理 1.Java的安装 java是大数据的黄金语言,这和java跨平台的特性是密不可分 ...
- 吴裕雄--天生自然HADOOP学习笔记:使用yum安装更新软件
实验目的 了解yum的原理及配置 学习软件的更新与安装 学习源代码编译安装 实验原理 1.编译安装 前面我们讲到了安装软件的方式,因为linux是开放源码的,我们可以直接获得源码,自己编译安装.例如: ...
- 吴裕雄--天生自然HADOOP学习笔记:Shell工具使用
实验目的 学习使用xshell工具连接Linux服务器 在连上的服务器中进入用户目录 熟悉简单的文件操作命令 实验原理 熟悉shell命令是熟悉使用linux环境进行开发的第一步,我们在linux的交 ...
- 吴裕雄--天生自然HTML学习笔记:HTML 布局
网页布局对改善网站的外观非常重要. 请慎重设计您的网页布局. <!DOCTYPE html> <html> <head> <meta charset=&qu ...
随机推荐
- 调用约定__stdcall / __cdecl
__cdecl与__stdcall这两种调用约定之间的主要差别在于由谁来执行对参数的清理工作. 如果是__cdecl,那么主调函数将负责执行清理工作,如果是__stdcall那被调函数将负责执行清理. ...
- HTTP协议(四):首部
前言 作者说:上一节中介绍了HTTP报文中的状态码,这一节同样是对报文的补充,介绍的是HTTP首部字段.不过,你如果是第一次见到这个东西,肯定会特别疑惑,什么是HTTP首部? <图解HTTP&g ...
- 并发与高并发(十三)J.U.C之AQS
前言 什么是AQS,是AbstractQueuedSynchronizer类的简称.J.U.C大大提高了并发的性能,而AQS又是J.U.S的核心. 主体概要 J.U.C之AQS介绍 J.U.C之AQS ...
- webview HttpClient 怎么保持会话session统一
cookies session均为key---value的形式展示, 1. session是存储在服务端,并有一块区域控件存储用户信息,主要是为了判断该用户是否登录,在客户端采用httpC ...
- 在java中如何根据手机号查询号码归属地
1.maven项目中配置 <dependency><groupId>com.googlecode.libphonenumber</groupId><artif ...
- UVA 11552 序列划分模型 状态设计DP
这个题目刚看到还真不好下手,把一个是 k的倍数的长度的字符串分成len/k块,每块是k个字母,每个块可以重新组合,最后使得整个序列的相同字母尽量在一起,也就是说,最后会把序列从前往后扫,相连的相同字母 ...
- Linux CMD 笔记 & 正则表达式
一.linux bash 1. 进程名查找kill ps -ef | grep xxxx| grep -v grep| cut -c 9-15 | xargs kill -9 2.端口号kill 占用 ...
- 2020/1/29 PHP代码审计之进一步学习XSS【持续更新】
0x00 上午学习了XSS漏洞,中午吃饭想了想,还是思考的太浅层了,这种老生常谈的东西对于现在的我意义不大.现在我需要的是思考.于是就有了这个随笔.在本文中,我会持续更新一些XSS的深入思考,payl ...
- Java--定时
TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub ...
- Springboot数据校验
SpringBoot中使用了Hibernate-validate校验框架 1.在实体类中添加校验规则 校验规则: @NotBlank: 判断字符串是否为null或者是空串(去掉首尾空格).@NotEm ...