【发布时间】:2018-06-05 15:04:20
【问题描述】:
我正在构建一个从 rss 提要生成 html5 音频元素的 php 页面。
<? foreach($tracks as $track){ ?>
<audio controls >
<source src="<?= $track['track_url'] ?>" type="audio/mpeg">
<source src="<?= $track['track_url'] ?>" type="audio/ogg">
Your browser does not support the audio element.
</audio>
<? } ?>
在这种情况下大约有 300 条轨道,所以我不会一次加载它们(上面的代码是为了说明这个概念)。
我最初加载了一些曲目,然后在用户向下滚动时加载其他曲目。
您可以在此处查看该页面:http://canneconomy.com/podcast
前几首曲目加载和播放没有问题。但是,在加载 10 条左右的曲目后,用户将无法再播放 HTML5 音频元素。我相信这是因为所有的套接字都被占用了,不能再使用了。
我建议的解决方案是防止 HTML5 音频元素在生成时自动保留套接字,并手动管理此过程。只有当用户单击播放按钮时才会使用套接字。点击另一个播放按钮将释放所有插槽并仅占用一个。
如何手动管理套接字连接?这是一个 PHP/jQuery 应用程序。
【问题讨论】:
标签: javascript php jquery html sockets