我正在使用Gosu(Ruby 2.5.5版)制作带有GUI的音乐播放器,我有一个基本播放器一次可以播放一首歌,但是我需要对播放器进行调整,这样我才能从此播放一首歌曲:
@song = Gosu::Song.new(music_file)
@song.play(false)
我需要播放三首歌曲,然后继续播放,直到所有歌曲播放完毕。
问题在于循环将跳过前两首歌曲,播放最后一首。 尝试复制每首歌曲的代码也会跳过前两首歌曲。
我一直试图让Gosu依次识别和播放歌曲,而不会在运行时跳过前两个歌曲。
感谢您的帮助。
编辑:我使用的循环
for i in 0..songs.length - 1
@song = Gosu::Song.new(songs[i])
@song.play(false)
end
答案 0 :(得分:0)
类似的事情应该起作用
AUDIO_FILE_TYPES = %w[wav mp3 ogg aif aiff]
def play_songs(path)
songs = Dir.entries(path).select do |filename|
AUDIO_FILE_TYPES.include? File.extname(filename).delete('.')
end
songs.each do |song|
playing_song = Gosu::Song.new(song).play
while playing_song.playing?
sleep 0.1
end
end
end
play_songs('path/to/song/directory')