jQuery中的音频故障
Audio Glitch in jQuery
我已经完全开发了一个播放电台流的音频播放器。他们目前在StreamOn上托管音频,当你点击流媒体小部件右下角播放器中的播放按钮时,音频在缓冲后,通过插入一个样式为不可见的iframe来播放。然而,工作人员抱怨说,如果你在加载时多次点击播放按钮,它将播放多个流(如图所示:Glitted Page)。因此,在我的测试页面上,我尝试了以下代码来防止这种情况发生。然而,音频现在甚至没有按请求加载(如图所示:测试页面)。我们将不胜感激。
<script>
$playing = 0;
$(document).on("click", "button#mute", function(){
$('iframe#audioStreamOn').remove();
$playing = 0;
});
if ($playing =0) {
$(document).on("click", "button#play", function(){
$(this).after('<iframe id="audioStreamOn" class="hidden" src="http://wpov.streamon.fm"></iframe>');
$playing = 1;
});
}
else {
$(document).on("click", "button#play", function(){
});
}
</script>
我认为您应该稍微更改一下代码。在你的Glitted页面上,你有这样的:
$(document).on("click", "button#mute", function () {
$('iframe#audioStreamOn').remove();
});
$(document).on("click", "button#play", function () {
$(this).after('<iframe id="audioStreamOn" class="hidden" src="http://wpov.streamon.fm"></iframe>');
});
使用这个替代:
var playing = 0;
$(document).on("click", "button#mute", function () {
$('iframe#audioStreamOn').remove();
playing = 0;
});
$(document).on("click", "button#play", function () {
if (playing == 0) {
$(this).after('<iframe id="audioStreamOn" class="hidden" src="http://wpov.streamon.fm"></iframe>');
playing = 1;
} else {
return false;
}
});
我改变了什么:
- 你有
if ($playing =0) {
,这不会检查它将分配给它的值,你需要==
来比较它们。我还删除了javascript中的$
,$是一种很好的做法,不使用in变量,在这里它甚至被jQuery使用 - 我更改了您的点击事件监听器以包装您的
if
语句。你有另一条路。像这样,当点击播放按钮时,它将检查if
语句。您的if
语句刚刚在页面加载时被检查,没有函数再次调用它 - 在你的
else
中,我现在只有return false;
,这意味着如果是playing == 1
,什么都不要做(忽略点击)
相关文章:
- 如何播放部分音频文件
- 音频控件在mouseover上显示,在mouseout上淡出
- HTML5音频加载和播放获胜'我不能在iPad上工作
- javascript.点击隐藏事件故障
- 是否可以在浏览器中使用纯JavaScript保存音频流
- angular不会更改json的音频源
- 通过幻灯片更改事件停止使用jquery的音频
- 音频和动画在javasctipt循环中同步
- JS条件故障排除
- 尝试初始化()Spine's控制器和故障
- 物体故障
- 使用jQuery控制来自图像的音频
- 调整<音频>元素
- javascript:发送带有音频文件的POST,然后重定向到新页面
- 间歇性浏览捆绑包故障(可能是brfs)
- 使用带有CefSharp或CefGlue的JavaScript的本地或流式音频
- CORS故障无法解决jquery,laravel5.2
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- jQuery中的音频故障
- 网络音频API故障/失真问题