播放音乐:pygame.mixer.music

来源:互联网 发布:迈克尔杰克逊 知乎 编辑:程序博客网 时间:2024/05/19 09:15
 

播放音乐:pygame.mixer.music

author: 刘敏 EMAIL:liumin3000@gmail.com


播放音乐:pygame.mixer.music

要在游戏中播放背景音乐

  • pygame.init() 进行全部模块的初始化,
  • pygame.mixer.init() 或者只初始化音频部分
  • pygame.mixer.music.load('/home/liumin/love.mp3') 使用文件名作为参数载入音乐 ,音乐可以是ogg、mp3等格式。载入的音乐不会全部放到内容中,而是以流的形式播放的,即在播放的时候才会一点点从文件中读取。
  • pygame.mixer.music.play()播放载入的音乐。该函数立即返回,音乐播放在后台进行。play方法还可以使用两个参数
  • pygame.mixer.music.play(loops=0, start=0.0) loops和start分别代表重复的次数和开始播放的位置。
  • pygame.mixer.music.stop() 停止播放,
  • pygame.mixer.music.pause() 暂停播放。
  • pygame.mixer.music.unpause() 取消暂停。
  • pygame.mixer.music.fadeout(time) 用来进行淡出,在time毫秒的时间内音量由初始值渐变为0,最后停止播放。
  • pygame.mixer.music.set_volume(value) 来设置播放的音量,音量value的范围为0.0到1.0。
  • pygame.mixer.music.get_busy() 判断是否在播放音乐,返回1为正在播放。
  • pygame.mixer.music.set_endevent(pygame.USEREVENT + 1) 在音乐播放完成时,用事件的方式通知用户程序,设置当音乐播放完成时发送pygame.USEREVENT+1事件给用户程序。
  • pygame.mixer.music.queue(filename) 使用指定下一个要播放的音乐文件,当前的音乐播放完成后自动开始播放指定的下一个。一次只能指定一个等待播放的音乐文件。

NOTE:同时只能播放一个音乐文件。音乐文件可以很大,系统以流的形式播放。

 

   1 #!/usr/local/bin/python
   2 import pygame
   3
   4 pygame.init()
   5 while 1:
   6         if pygame.mixer.music.get_busy() == False:
   7                 print 'is playing!'
   8                 pygame.mixer.music.load('wujiandao.mp3')
   9                 pygame.mixer.music.play()

NOTE:

  • 这里为什么要用循环?
    • 音乐文件是以流的形式加载的,所以要用循环加载播放,加载一点播放一点
  • 为什么要用if语句?
    • pygame.mixer.music只支持同时播放一个音乐文件,如果没有if ,在第一次循环时加载一段流进行播放(就有一个音乐文件在播放了),在第二次循环时play()就会回到开始位置重新加载,所以整个循环都是在加载播放地一段流。if是判断是否有音文件在播放,如果有就不会重新回到开始位置加载流,而一直播放第一次加载的音乐文件流,所以print只打印了一次