加载声音文件暂停,然后在几秒钟后开始播放

Load sound file paused and then start to play after a number of seconds

本文关键字:几秒 播放 开始 文件 声音 暂停 然后 加载      更新时间:2023-09-26

我使用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>

谢谢

我不熟悉API,但这里是我想尝试的:

  1. 加载播放器与页面,但禁用自动播放(应该有一个参数在URL,我猜)
  2. 为页面加载事件设置一个计时器,该事件执行一个函数,该函数调用适当的API函数来启动播放器。

这需要API的知识,应该在网站上有一个文档。


播放器的文档可以在http://developers.soundcloud.com/docs/widget找到。

SoundCloud Player可通过URL参数定制,并可通过JavaScript API编写脚本。

感兴趣的参数是auto_play,它可以禁用声音的自动播放。

您可以按照"Widget方法"一节中的描述操作播放器:

api_play() Player从0开始播放或从最后暂停的轨道位置开始播放。如果小部件包含多个音轨,它将开始播放第一个音轨。

你可以将你的代码与'事件类型'一节中描述的各种事件挂钩。

onPlayerReady当小部件加载数据并准备接受外部调用时触发。每个小部件实例只触发一次。

onMediaBuffering在小部件仍在缓冲时触发。data(第二个参数)包含属性 % 。这也意味着你还不能在轨道中完全查找

您必须测试缓冲行为以了解如何设置事件侦听器。您可能还需要使用onMediaDoneBuffering事件。