2017-03-02 39 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,因爲這應該被記錄或修復。