我用Pythonista做音乐播放器。单个mp3文件可以正常播放,但是如果我播放多个mp3文件,它们都可以同时播放。
有人知道吗?
这是我的代码:
import sound
import time
import glob
fileList = glob.glob("i7/*") #my folder
playerlist = []
for file in fileList:
filename = file
sound.set_honors_silent_switch(False)
sound.set_volume(1)
player = sound.Player(filename)
playerlist.append(player)
for playerMin in playerlist:
playerMin.play() #same time
答案 0 :(得分:0)
在docs中,Player.play()
只是“开始播放音频”。如果要连续播放该歌曲,则必须等待播放一首歌曲,直到上一首歌曲结束为止,因为play
直到完成播放后才会阻塞主线程。
尝试一下:
import sound
import time
### Setup ###
sound.set_honors_silent_switch(False)
sound.set_volume(1)
### You populate this ###
files = [...]
### Play songs in order ###
for filename in files:
player = sound.Player(filename)
player.play()
time.sleep(player.duration) # this is the key part –– makes the loop wait to play the next song until this song is done playing
player.stop()
此方法超级灵活。例如,如果要在歌曲之间淡入淡出,可以在使循环sleep
少于歌曲持续时间的同时增大音量。这变得更加复杂,但是从根本上是这样完成的。