吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3670|回复: 10
收起左侧

[已解决] pygame 无法播放音乐

[复制链接]
吾爱破jie 发表于 2020-1-6 17:04
本帖最后由 吾爱破jie 于 2020-1-6 18:26 编辑

请问这是怎么回事,无法播放音乐,运行之后立即停止了
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a21271845 发表于 2020-1-6 17:47
QQ截图20200106174501.png
 楼主| 吾爱破jie 发表于 2020-1-6 18:25
ymhld 发表于 2020-1-8 19:57
吾爱破jie 发表于 2020-1-6 18:25
不是这个问题,play后面要加上时间

把正确答案也发上来,一起学习一下
cjt880 发表于 2020-2-9 13:43
是相对路径跟绝对路径的问题
ymhld 发表于 2020-2-10 19:31
吾爱破jie 发表于 2020-1-6 18:25
不是这个问题,play后面要加上时间

不加参数也应该能播放吧,loops=0, start=0.0
加参数也不能呢
ymhld 发表于 2020-2-10 19:32
cjt880 发表于 2020-2-9 13:43
是相对路径跟绝对路径的问题

用了绝对路径也放不出来呢,怎么回事?

[Python] 纯文本查看 复制代码
import pygame
#pygame.init()
pygame.mixer.init()
pingmu=pygame.display.set_mode([500,365])
track1=pygame.mixer.music.load('E:\\KwDownload\\song\\海来阿木&阿呷拉古&曲比阿且-别知己.mp3')
pygame.mixer.music.play(loops=0, start=0.0)
ymhld 发表于 2020-2-10 19:38
播放音乐: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只打印了一次
ymhld 发表于 2020-2-10 19:41


[Python] 纯文本查看 复制代码
import pygame
pygame.mixer.init()
#pingmu=pygame.display.set_mode([500,365])
while 1:
     if pygame.mixer.music.get_busy() == False:
             print ('is playing!')
             pygame.mixer.music.load('E:\\KwDownload\\song\\海来阿木&阿呷拉古&曲比阿且-别知己.mp3')
             pygame.mixer.music.play()

这个可以了
 楼主| 吾爱破jie 发表于 2020-2-22 09:55
ymhld 发表于 2020-2-10 19:41
[mw_shl_code=python,true]
import pygame
pygame.mixer.init()

才看到,感谢回复,很有用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表