1、当我们播放一首歌曲(mp3格式)时,可用实现如下:hfmix.pyw
这个程序使用两个按钮控制音乐的播放和停止
from tkinter import *
import pygame.mixer
app = Tk()
app.title("Head First Mix")
sound_file = "光荣.mp3"
mixer = pygame.mixer
mixer.init()
def track_start():
pygame.mixer.music.play(loops = -1)
def track_stop():
pygame.mixer.music.stop()
def shutdown():
pygame.mixer.music.stop()
app.destroy()
track = pygame.mixer.music.load(sound_file)
start_button = Button(app,text = "Start",command = track_start)
start_button.pack(side = 'left')
stop_button = Button(app,text = "Stop",command = track_stop)
stop_button.pack(side = 'right')
app.protocol("WM_DELETE_WINDOW",shutdown)
app.mainloop()
也可以使用一个按钮控制:使用Checkbutton。hfmix4.pyw & hfmix401.pyw
from tkinter import *
import pygame.mixer
app = Tk()
app.title("Head First Mix")
sound_file = "01.mp3"
mixer = pygame.mixer
mixer.init()
def track_toggle():
if
track_playing.get() == 1:
pygame.mixer.music.play(loops
= -1)
else:
pygame.mixer.music.stop()
def track_start():
pygame.mixer.music.play(loops = -1)
(注意:track_start()
和 track_toggle()使用两者均可以,选其一,实现一个按钮控制。注意修改Checkbutton的command参数)
def shutdown():
pygame.mixer.music.stop()
app.destroy()
track = pygame.mixer.music.load(sound_file)
track_playing = IntVar()
track_button = Checkbutton(app,variable = track_playing,text = "Start",command = track_start)
track_button.pack()
app.protocol("WM_DELETE_WINDOW",shutdown)
app.mainloop()
2、如果我们想控制音量的话,需要调用set_volume()方法。
示例:(1)volumeDemo.py
import pygame.mixer
from time import sleep
mixer = pygame.mixer
mixer.init()
track = mixer.Sound("1.WAV")
print("Play it loud,man!")
track.play(loops = -1)
track.set_volume(1.9)
sleep(2)
print("Softly does it......")
track.set_volume(0.4)
sleep(2)
track.stop()
(2)如何控制mp3的声音是个问题。Pygame.mixer不适合播放长时间的音乐,需要使用pygame.mixer.music,它用来播放mp3和ogg音乐文件。不过,并不是所有的系统都支持mp3,linux就默认不支持mp3.
(2)使用pygame.mixer.music.load()来加载一个文件,然后使用pygame.mixer.music.play()来播放。当然,也有类似的stop、pause和unpause方法。
示例:volumeMp3Demo.py
import pygame.mixer
from time import sleep
pygame.mixer.init()
track = pygame.mixer.music.load("01.mp3")
print("Play it loud,man!")
pygame.mixer.music.play(loops = -1)
pygame.mixer.music.set_volume(5.9)
sleep(2)
print("Softly does it......")
pygame.mixer.music.set_volume(0.4)
sleep(2)
track.stop()