- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的音乐播放器中,我有一个控制音频对象的功能,当单击播放/暂停按钮时,它决定暂停声音或播放声音。此外,如果单击按钮时正在播放任何其他音频,它会暂停它们并播放与单击按钮相对应的声音。
这是函数:
function manageAudio() {
if (audio.paused) {
//play after 150ms
setTimeout(function() {
audio.play();
}, 150);
$('.playButton.playing').click();
$(thisObj).addClass("bekhon");
$(".sMusicPlyaer").removeClass("nakhon ");
} else {
audio.pause();
$(thisObj).addClass("nakhon");
$(".sMusicPlyaer").removeClass("bekhon");
}
}
这是完整的演示,请查看:
$.fn.MusicPlayer = function(options) {
var settings = $.extend({
// These are the defaults
title: "",
track_URL: "",
load_playlist: ""
}, options);
var audio, thisObj, playPauseBTN;
audio = new Audio();
thisObj = this;
playPauseBTN = $(".playButton", thisObj);
//Statuses Evnts
$(audio).on("playing", function() {
togglePlying(playPauseBTN, true);
$(playPauseBTN).addClass("pause");
});
$(audio).on("pause", function() {
togglePlying(playPauseBTN, false);
$(playPauseBTN).removeClass("pause");
});
thisObj.each(function() {
audio.src = settings.track_URL;
$(".title", thisObj).text(settings.title);
if (settings.load_playlist == "true") {
$(thisObj).css("height", "140px");
$(thisObj).append("<div class='playlist'></div>");
$(".playlist", thisObj).append("<div class='row' data-src='https://p.scdn.co/mp3-preview/c92cc644b1eb5094ce65cf561c41b0c6d9f3faaa'>music 1</div>");
$(".playlist", thisObj).append("<div class='row' data-src='https://p.scdn.co/mp3-preview/dc73c2b8aa08c7b5ac2c72813326fbd6aa65787b'>music 2</div>");
$(".playlist", thisObj).append("<div class='row' data-src='https://p.scdn.co/mp3-preview/b2da3e7ee2834c24fbf5a0927e59d34cc618e30e'>music 3</div>");
}
});
$(playPauseBTN, thisObj).on("click tap", function() {
manageAudio();
});
$(".playlist > .row", thisObj).on("click tap", function() {
audio.src = $(this).attr("data-src");
manageAudio();
});
function manageAudio() {
if (audio.paused) {
//play after 150ms
setTimeout(function() {
audio.play();
}, 150);
console.log("print");
$('.playButton.playing').click();
$(thisObj).addClass("bekhon");
$(".sMusicPlyaer").removeClass("nakhon ");
} else {
audio.pause();
$(thisObj).addClass("nakhon");
$(".sMusicPlyaer").removeClass("bekhon");
}
}
}
// Utility functions
function togglePlying(aClassName, bool) {
$(aClassName).toggleClass("playing", bool);
}
$("#player1").MusicPlayer({
title: "title 1",
track_URL: "https://rjmediamusic.com/media/mp3/mp3-256/Alireza-JJ-Sijal-Nassim-Ki-Khoobe-Ki-Bad-(Ft-Behzad-Leito-Sami-Low-AFX).mp3"
});
$("#player2").MusicPlayer({
title: "title 2",
track_URL: "http://myst729.qiniudn.com/within-temptation_pale.mp3",
load_playlist: "true"
});
$("#player3").MusicPlayer({
title: "title 3",
track_URL: "https://p.scdn.co/mp3-preview/657f7141682f667253bf9c3afab5feebccf75105"
});
body {
background: url(http://wallpapercave.com/wp/VkyGWEi.jpg) no-repeat;
background-size: cover;
}
.sMP {
background: rgba(255, 255, 255, 0.5);
color: #000;
width: 400px;
height: 50px;
margin: 10px;
}
.playButton {
background: url(https://cdn4.iconfinder.com/data/icons/standard-free-icons/139/Play01-64.png);
background-size: 30px 30px !important;
width: 30px;
height: 30px;
}
.playButton.pause {
background: url(https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-pause-48.png);
}
.row {
border: 1px solid black;
margin: 5px 0 5px 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sMP" id="player1">
<div class="playButton"></div>
<div class="title"></div>
</div>
<div class="sMP" id="player2">
<div class="playButton"></div>
<div class="title"></div>
</div>
<div class="sMP" id="player3">
<div class="playButton"></div>
<div class="title"></div>
</div>
JSFiddle :
要查看错误,请单击播放器 2 中的播放按钮,然后通过单击同一播放列表中的另一个轨道来更改轨道。它最终会出现Uncaught RangeError:超出最大调用堆栈大小(…)
错误。它很可能与 $('.playButton.playing').click();
有关。
有什么解决办法吗?
最佳答案
您必须确保单击当前播放列表之外的播放按钮。
因此,您可以执行以下操作,而不是执行 $('.playButton.playing').click();
:
var $playing = $('.playButton.playing');
if ($(thisObj).find($playing).length === 0) {
$playing.click();
}
这样您就不会再次点击中间框中的播放按钮。
关于javascript - 如何停止播放/暂停控制功能中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537887/
我有 3 个列表项,每 3 秒向上旋转一次。我正在使用 transformY 属性来做这件事。问题是,当它到达最后一个元素时,它会循环返回,从而产生重新开始的效果。 如何通过在最后一项之后继续向上旋转
我如何制作一个处理旋转的无限/重复世界,就像在这个游戏中一样: http://bloodfromastone.co.uk/retaliation.html 我通过具有这样的层次结构对我的旋转移动世界进
这个问题已经有答案了: Using explicitly numbered repetition instead of question mark, star and plus (4 个回答) 已关闭
程序说明: I have this program of mine which is intended to read every word from a file (large one) and t
while 循环应该比较这两个对象的 ibsn。正在比较的对象: list[0] = new ReadingMatter ("Words and Stuff", "9-082-1090-1");
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我完全被屏蔽了。我尝试修改 C 中的“警报”信号,以便在秒数到期时读取一个简单的变量。我的代码如下: 在主要部分: int semnal; signal(SIGALRM, alarmHandle
我正在接受多行信息(字符串,直到我稍后解析它们)。例如: 1 5 0 2 9 6 2 9 1 我编写这段代码来分隔行,因为我将不得不以某种方式操作每一行。 Scanner scan = new Sca
我不熟悉 jQuery,并且我有多余的 jQuery 调用,我想将它们放入循环中。 $('.class1').on('click', function () { ... $('.class2').on
我有一个树结构,其中每个节点都有 5 个子节点,并且不允许超过 5 个。我希望以广度优先搜索的方式遍历这棵树。 现在我想使用广度优先搜索方式从选定的父节点计算空节点。 例如 如果给定的父节点为 1,则
目标/动机 我想写一个服务,它应该一直运行。但是当服务已经运行时,应该不可能再次启动该服务。 用例 用户 X 打开页面 myService.php 并通过单击页面上的按钮启动服务。之后关闭浏览器。一段
我正在尝试编译 shogun 工具箱,但遇到了这个错误 C:/shogun-3.0.0/shogun-3.0.0/src/shogun/../shogun/mathematics/Math.h
需要学校的 JavaScript 作业帮助,但不知道该怎么做,希望得到一些提示? 我们应该创建一个 6 面掷骰子程序,用户可以选择应该掷多少个骰子,最少 1 个和最多 5 个骰子。 所用骰子数量的总和
我在无限 ScrollView 中有 5 张图片。 因此,为了使 scrollView 无限/循环,我将图像定位如下: 5 1 2 3 4 5 1含义:最后一张图片第一张图片第二张图片.....最后一
我正在使用 ExTwitter库,并希望能够偶尔终止对流式 API 的调用以更改参数。 我当前的代码看起来像这样: for tweet #finished end 关于elixir - 如何中断(无
我想每 3 秒更改一次 div 的背景。这需要循环,因此一旦最后一个背景图像显示,它就会循环回到第一个背景图像,依此类推。我在这样做时遇到了麻烦。 我之前发过一篇文章,内容非常模糊,没有得到帮助。
我在做this教程,无法让我的页面正确加载。我不断在控制台中收到错误:[$rootScope:infdig]。 我对 Angular 很陌生,但从我读到的内容来看,我在某个地方有一个无限循环。我预计它
所以我试图创建一个无限的 asyncIterator/生成器。该代码应该为“for wait of”循环生成“Hello”和“Hi”,然后永远等待下一个值。问题是它不等待第三个值,也不在循环后打印 2
下图显示了我如何在 HTML5/JS 中制作无限背景滚动。我的连续背景由 X block Canvas 组成。我将在到达下一个 Canvas 之前立即渲染它,并释放上一个 Canvas。这里的问题是动
作为一个业余项目,我正在研究一些自制的素数生成问题,尝试编写一些不同的实现作为自学 C 和 C++ 的方法。当然,生成低素数的最快方法是已经拥有它们,所以我想着手建立一个硬盘素数列表数据文件。我想编写
我是一名优秀的程序员,十分优秀!