我使用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&show_comments=false&auto_play=true&color=ff7700" type="application/x-shockwave-flash" width="100%"></embed>
</object>
由于
答案 0 :(得分:1)
我不熟悉API,但这是我会尝试的:
这需要知道API,该API应该在网站上有文档。
有关播放器的文档可在http://developers.soundcloud.com/docs/widget找到。
SoundCloud播放器可通过URL参数进行自定义,并可通过JavaScript API编写脚本。
感兴趣的参数是 auto_play ,可以禁用自动播放声音。
您可以按照“Widget方法”部分所述操作播放器:
api_play()播放器从0开始播放或从上一个暂停的曲目位置开始播放。如果小部件包含多个轨道,它将开始播放第一个轨道。
您可以将代码挂钩到“事件类型”部分中描述的各种事件。
onPlayerReady 当窗口小部件加载了数据并准备接受外部调用时触发。每个小部件实例仅触发一次。
onMediaBuffering 当小部件仍在缓冲时触发。 data (第二个参数)包含属性 percent 。这也意味着你不能完全在轨道上寻找
您必须测试缓冲行为以了解如何设置事件侦听器。您可能还需要使用 onMediaDoneBuffering 事件。