有没有一种方法可以使用Gosu播放音乐列表?

时间:2019-11-22 17:44:36

标签: ruby user-interface graphics libgosu

我正在使用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

1 个答案:

答案 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')