2017-03-02 32 views
0

我想在Windows上用Ruby编写一个简单的游戏(版本2.2.6)。我安装了古薮宝石来处理音频和我有,我想打一个音带文件:Gosu :: Ruby中的歌曲只能播放第一个音符

@soundtrack = Gosu::Song.new("theme.ogg") 

我不能用样品,因为我需要能够暂停。

def play_soundtrack 
    @soundtrack.play(looping = true) 
    end 

    def pause_soundtrack 
    print "Paused " 
    @soundtrack.pause 
    end 

运行此操作只播放主题的第一个音符,然后不播放声音。 Gosu :: Sample仍然适用,因此我不确定我使用Gosu :: Song会出现什么问题。

+0

使用代码块选项(在输入问题时在文本编辑器顶部显示为一对大括号{},以突出显示问题中的代码段。这将改善你的问题的可读性。 –

+1

谢谢你的提示,这是我第一个问题。 –

+0

快乐是我的 –

回答

0

Gosu现在不可能,Song#play不能在没有窗口的情况下工作。由于Gosu不使用后台线程播放音频,因此需要定期调用内部方法以保持歌曲播放。 Gosu::Window#showdoes this once per tick。没有办法从Ruby直接调用这个方法。唯一的解决方法是在播放音频时显示一个小窗口。

我打开了a GitHub issue,因为这应该被记录或修复。