2011-04-26 39 views
0

我使用的setTimeout播放音頻文件8秒後:加載聲音文件暫停,然後開始數秒後打

setTimeout(function() { 
     document.getElementById('delayed_play').style.display = 'block'; 
    }, 8 * 1000); 
<div id="delayed_play"> 

的問題是,我需要它的後正好開始8秒,而是根據連接速度開始加載文件並花費不同的時間。

有沒有辦法讓文件加載暫停,並告訴它在8秒開始?

這與腳本的其餘部分的音頻文件:

<script type="text/javascript"> 
    document.getElementById('delayed_play').style.display = 'none'; 
    </script> 

<object height="0" width="40%"> 
<embed allowscriptaccess="always" height="0" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F14151193%3Fsecret_token%3Ds-OVmfN&amp;show_comments=false&amp;auto_play=true&amp;color=ff7700" type="application/x-shockwave-flash" width="100%"></embed> 
</object> 

感謝

回答

1

我不熟悉的API,但這裏是我想嘗試:

  1. 加載播放器的頁面,但禁用自動播放(我應該有一個參數在URL中,我猜)
  2. 設置頁面加載事件執行af調用適當的API函數來啓動播放器。

這需要知道應在網站上有文檔的API。


關於玩家的文檔可以在http://developers.soundcloud.com/docs/widget找到。

SoundCloud Player可通過URL參數進行自定義,並可通過JavaScript API編寫腳本。

感興趣的參數是auto_play它可以禁用自動播放聲音。

在「控件的方法」部分中描述你可以操縱球員:

api_play()球員開始無論是從0或從上次暫停的軌道位置播放。在小部件包含多個音軌的情況下,它將開始播放第一首歌曲。

您可以將代碼掛鉤到「事件類型」部分中描述的各種事件。

onPlayerReady當控件加載其數據並準備接受外部呼叫觸發。每個小部件實例只觸發一次。

onMediaBuffering當小部件仍在緩衝時觸發。 數據(第二個參數)包含屬性百分比。這也意味着你不能在軌道上完全尋找

你必須測試緩衝行爲,看看如何設置你的事件監聽器。您可能還需要使用onMediaDoneBuffering事件。

+0

我一直在閱讀API文檔,但我找不到如何去做。無論如何,我遇到了問題,我甚至無法找到如何開始最大音量。 什麼是另一個上傳音頻文件的好網站,我以後可以嵌入到我的網站? – lisovaccaro 2011-04-26 07:37:28

+0

非常感謝我現在更好地瞭解如何做到這一點 – lisovaccaro 2011-04-27 01:32:49

相關問題