import pygame
file = 'some.mp3'
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
此输出,“处理完成退出代码0”,但它不播放任何内容。我该如何解决这个问题?
答案 0 :(得分:17)
播放功能开始播放音乐,但立即返回。然后你的程序到达它结束,pygame对象被自动销毁,导致音乐停止。
正如你评论的那样,如果你在退出之前等待它,它确实会播放音乐 - 因为那时pygame对象不会被销毁,直到while循环结束。
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
答案 1 :(得分:12)
音乐停止是因为它是一个异步事件,这意味着它将继续使用脚本。然后,脚本立即停止,而不是让音乐有机会开始。 如前所述,你可以使用
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
然而,更好的是pygame.event.wait()
,因为它会等待所有异步事件结束。
答案 2 :(得分:6)
这是一种超级简单的方法。
IN Component
import * as jwt from 'jsonwebtoken';
var maykey = privatekey;
var token = jwt.sign({ foo: 'bar' }, maykey, { algorithm: 'RS256' });
答案 3 :(得分:2)
试试这个,
#!/usr/bin/env python
import pygame
from Tkinter import *
file = 'Your MP3 here'
root = Tk()
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
root.mainloop()
您将需要安装Tkinter,但它有望工作,您不需要手动设置时间。 如果这个工作请告诉我,我在我的电脑上测试了这个,但有时事情就是没有什么工作。如果可以,我会尽力帮助你。
答案 4 :(得分:2)
我从thepythongamebook.com找到了一个很好的解决方案:
pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load('music_01.mp3')
pygame.mixer.music.play(-1)
答案 5 :(得分:1)
尝试这个。
import pygame
def pmusic(file):
pygame.init()
pygame.mixer.init()
clock = pygame.time.Clock()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
print("Playing...")
clock.tick(1000)
def stopmusic():
pygame.mixer.music.stop()
def getmixerargs():
pygame.mixer.init()
freq, size, chan = pygame.mixer.get_init()
return freq, size, chan
def initMixer():
BUFFER = 3072 # audio buffer size, number of samples since pygame 1.8.
FREQ, SIZE, CHAN = getmixerargs()
pygame.mixer.init(FREQ, SIZE, CHAN, BUFFER)
try:
initMixer()
file = 'C:\\data\\03.mp3'
pmusic(file)
except KeyboardInterrupt: # to stop playing, press "ctrl-c"
stopmusic()
print("\nPlay Stopped by user")
except Exception:
print("unknown error")
print("Done")
答案 6 :(得分:0)
由于导入音频的方式,音频似乎无法播放。下面的代码按预期播放声音。此处没有任何更改,只有import pygame
使用from pygame import mixer
。这可能是因为Pygame是一个包,但我不确定。
from pygame import mixer
file = 'some.mp3'
mixer.init()
mixer.music.load(file)
mixer.music.play()
答案 7 :(得分:0)
您是否在终端/命令提示符中使用过pip3 install pygame
?
答案 8 :(得分:0)
PyGame有2个用于播放声音和音乐的模块,分别是pygame.mixer模块和pygame.mixer.music模块。该模块包含用于加载声音对象和控制播放的类。差异在文档中说明:
音乐播放和常规声音播放之间的区别在于,音乐是流式传输的,永远不会一次全部加载。混音器系统一次仅支持一个音乐流。
如果要播放 mp3 文件,则需要初始化模块。用pygame.mixer.music.load
加载文件。调用pygame.mixer.music.play()
以开始播放音乐流。最后,您必须等待文件播放。
使用pygame.mixer.music.get_busy()
测试声音是否混合。连续循环查询调音台的状态。
在循环中,您需要将时间延迟pygame.time.delay
或pygame.time.Clock.tick
。另外,您需要处理应用程序循环中的事件。分别参见pygame.event.get()
pygame.event.pump()
:
对于游戏的每一帧,您都需要对事件队列进行某种调用。这样可以确保您的程序可以与操作系统的其余部分进行内部交互。
import pygame
pygame.init()
pygame.mixer.music.load('my_music.mp3')
pygame.mixer.music.play()
clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
clock.tick(60)
pygame.event.poll()