python使用PyGame播放Midi和Mp3文件的方法


Posted in Python onApril 24, 2015

本文实例讲述了python使用PyGame播放Midi和Mp3文件的方法。分享给大家供大家参考。具体实现方法如下:

''' pg_midi_sound101.py
play midi music files (also mp3 files) using pygame
tested with Python273/331 and pygame192 by vegaseat
'''
import pygame as pg
def play_music(music_file):
  '''
  stream music with mixer.music module in blocking manner
  this will stream the sound from disk while playing
  '''
  clock = pg.time.Clock()
  try:
    pg.mixer.music.load(music_file)
    print("Music file {} loaded!".format(music_file))
  except pygame.error:
    print("File {} not found! {}".format(music_file, pg.get_error()))
    return
  pg.mixer.music.play()
  # check if playback has finished
  while pg.mixer.music.get_busy():
    clock.tick(30)
# pick a midi or MP3 music file you have in the working folder
# or give full pathname
music_file = "Latin.mid"
#music_file = "Drumtrack.mp3"
freq = 44100  # audio CD quality
bitsize = -16  # unsigned 16 bit
channels = 2  # 1 is mono, 2 is stereo
buffer = 2048  # number of samples (experiment to get right sound)
pg.mixer.init(freq, bitsize, channels, buffer)
# optional volume 0 to 1.0
pg.mixer.music.set_volume(0.8)
try:
  play_music(music_file)
except KeyboardInterrupt:
  # if user hits Ctrl/C then exit
  # (works only in console mode)
  pg.mixer.music.fadeout(1000)
  pg.mixer.music.stop()
  raise SystemExit

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
在Python中调用ggplot的三种方法
Apr 08 Python
python中__call__内置函数用法实例
Jun 04 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
python实现大文件分割与合并
Jul 22 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Django中自定义查询对象的具体使用
Oct 13 Python
Python底层封装实现方法详解
Jan 22 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
详解python中groupby函数通俗易懂
May 14 Python
Django配置跨域并开发测试接口
Nov 04 Python
Python 实现Mac 屏幕截图详解
Oct 05 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 #Python
python使用PIL缩放网络图片并保存的方法
Apr 24 #Python
python使用Tkinter显示网络图片的方法
Apr 24 #Python
Python中最常用的操作列表的几种方法归纳
Apr 24 #Python
在Python中使用lambda高效操作列表的教程
Apr 24 #Python
使用Python的判断语句模拟三目运算
Apr 24 #Python
Python的字典和列表的使用中一些需要注意的地方
Apr 24 #Python
You might like
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
使用Python更换外网IP的方法
2018/07/09 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
Python实现自动签到脚本功能
2020/08/20 Python
python Matplotlib模块的使用
2020/09/16 Python
秋天的图画教学反思
2014/05/01 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
单位更名证明
2015/06/18 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android