2012-04-20 62 views
8

我試圖用這個JavaScript來循環音頻元素:當我包括這 HTML 5音頻元素Rails中沒有循環

myAudio = new Audio('/assets/drumloop.mp3'); 
myAudio.loop = true; 
myAudio.play(); 

在一個腳本:

music.js純HTML文件並在Safari 5.1中打開html文件,它會很好地循環。當我在本地Rails服務器上運行Rails應用程序中包含此JavaScript時,音頻將播放,但不會循環

我一直在使用的「結束」事件的回調的時間設置爲零,並再次播放(如建議here試過,但是,不能正常工作。

有沒有可能是Rails是不發送在HTTP頭足夠的信息

+0

奇怪...它一旦被推送到heroku就可以工作,所以也許它與提供預編譯資源有關......回到http標頭的事情......我會調試,如果我接近它,但同時它足夠好! – Ricky 2012-04-20 18:09:16

+1

如果你不把它放在資產管道中,它是否仍然有問題? – Matt 2012-04-20 18:50:47

回答

1

我經常遇到同樣的問題。我還沒有找到real的解決方案,但確實有一個「開發過程中足夠好」的解決方案。

如果我真的需要測試循環或尋找,我最終將我的音頻文件放在另一臺服務器上,並在開發過程中從我的Rails應用程序中引用它們

在本地主機上運行的Apache對我來說工作得很好。您也可以使用Web服務器。只需確保在部署前更改這些路徑即可!

超級沮喪。

+0

+1爲優雅的實用主義。 – Ricky 2013-04-17 19:25:10

0

你不需要JS這個試試這個HTML:?

<audio controls="controls" loop="loop"> 
    <source src="/assets/drumloop.mp3" type="audio/mpeg" /> 
</audio> 

的關鍵是環= 「循環」

+0

謝謝,但問題在於,當它由本地Rails服務器提供服務時,它不遵守這些標記。我有太多的東西要做,所以我沒有機會正確調試它,但正如我所說的,我懷疑當heroku提供音頻數據時,它會發送一些額外的頭信息。 – Ricky 2012-04-30 16:19:36