html5音频播放器-jquery切换单击播放/暂停?
我想知道我做错了什么html5音频播放器-jquery切换单击播放/暂停?,jquery,audio,html,Jquery,Audio,Html,我想知道我做错了什么 $('.player_audio').click(function() { if ($('.player_audio').paused == false) { $('.player_audio').pause(); alert('music paused'); } else { $('.player_audio').play(); alert('music playing');
$('.player_audio').click(function() {
if ($('.player_audio').paused == false) {
$('.player_audio').pause();
alert('music paused');
} else {
$('.player_audio').play();
alert('music playing');
}
});
如果我点击“播放器音频”标签,我似乎无法启动音频曲目
你知道我做错了什么,或者我必须做什么才能让它工作吗?好吧,我不是100%确定,但我不认为jQuery扩展/解析了那些函数和属性(
.pause
,.pause()
,.play()
)
尝试通过DOM元素访问这些内容,如:
$('.player_audio').click(function() {
if (this.paused == false) {
this.pause();
alert('music paused');
} else {
this.play();
alert('music playing');
}
});
因为Firefox不支持mp3格式。要在Firefox上实现这一点,您应该使用ogg格式。我是在jQuery手风琴中实现的
$(function() {
/*video controls*/
$("#player_video").click(function() {
if (this.paused == false) {
this.pause();
}
});
/*end video controls*/
var stop = false;
$("#accordion h3").click(function(event) {
if (stop) {
event.stopImmediatePropagation();
event.preventDefault();
stop = false;
}
$("#player_video").click();
});
});
我不知道为什么,但我需要使用旧的skool文档
查看一个示例:您可以通过jQuery中的触发器调用本机方法。只要这样做:
$('.play').trigger("play");
暂停也是一样:$('.play').trigger(“暂停”)代码>
编辑:如。。。注释中指出,您可以执行与访问属性类似的操作:$('.play').prop(“暂停”)代码>如果其他人对上述解决方案有问题,我最终只是去参加活动:
$("#jquery_audioPlayer").jPlayer({
ready:function () {
$(this).jPlayer("setMedia", {
mp3:"media/song.mp3"
})
...
pause: function () {
$('#yoursoundcontrol').click(function () {
$("#jquery_audioPlayer").jPlayer('play');
})
},
play: function () {
$('#yoursoundcontrol').click(function () {
$("#jquery_audioPlayer").jPlayer('pause');
})}
});
适合我。尝试使用Javascript。它对我有用
Javascript:
var myAudioTag = document.getElementById('player_video');
myAudioTag.play();
这很有帮助。需要告诉jQuery选择器以下代码适用于哪些选定元素。最简单的方法是附加一个
[0]
比如
$(".test")[0].play();
下面是我使用jQuery的解决方案
<script type="text/javascript">
$('#mtoogle').toggle(
function () {
document.getElementById('playTune').pause();
},
function () {
document.getElementById('playTune').play();
}
);
</script>
$('#mtoogle')。切换(
函数(){
document.getElementById('playTune').pause();
},
函数(){
document.getElementById('playTune').play();
}
);
还有工作演示
您的尝试没有成功的原因是,您使用了一个类选择器,它返回元素的集合,而不是(=一!)元素,您需要它来访问players属性和方法。要使其发挥作用,基本上有三种方法,前面已经提到过,但仅作概述:
通过以下方式获取元素–而不是集合
- 迭代集合并使用
this
获取元素(与接受的答案类似)
- 使用id选择器(如果可用)
- 通过将
[0]
附加到选择器(返回集合的第一个元素),通过集合中的位置获取集合的元素
这是我的解决方案(如果您想单击页面上的其他元素):
简单使用
$('audio').trigger('pause');
在一行代码中切换可能很好:
let video=$('video')[0];
视频[video.paused?'play':'pause']()代码>如果你想播放它,你应该使用
$("#audio")[0].play();
$("#audio").stop();
如果你想阻止它,你应该使用
$("#audio")[0].play();
$("#audio").stop();
我不知道为什么,但它起作用了 简单添加此代码
var status = "play"; // Declare global variable
if (status == 'pause') {
status='play';
} else {
status = 'pause';
}
$("#audio").trigger(status);
你知道为什么我的音频播放器中的简单mp3在firefox 3.6中不起作用吗??它只显示一个黑色矩形。chrome和safari根本没有问题!正如MadBrain指出的,Firefox不喜欢MP3。改用Ogg Vorbis。标准化不是很好吗?您可以使用bind传递给单击时包含的函数的事件变量来获取当前目标,它是一个DomeElement函数(event){event.currentTarget.play();},而不是依赖关键字this。由于某些原因,Firefox中的音频不会暂停。它现在不起作用。我尝试了一下,但浏览器上没有任何提示这应该是对帖子的评论,而不是单独的回答。也许你知道如何从外部(例如,使用$('.play'))检查播放器是否播放或暂停?你可以通过jQuery.get访问元素的方法和属性,例如$('.play')。get(0)或$('.play)[0],然后你可以使用play()或plause()方法和paused属性来检查视频是否已暂停$('.play').get(0).paused是布尔值-如果暂停,则为true;如果不是,则为false。它可能是旧的,但您可以使用$('.play').prop(“暂停”)访问暂停的属性如果需要将播放时间设置为0:$(“.audioDemo”).prop(“currentTime”,0),代码>也很有用;而不是<代码> GETELMENTYBID/<代码>,您可以使用jQuery这样的代码:<代码> $('Op'播放器)。获取(0).Pror(<)/代码>或<代码> $(“0”播放器)[Po](<)/代码>。您应该考虑更新您的答案以匹配问题中的代码-问题不提及一个名为“代码> AddioTaG1
的元素。有了这个,你可以通过js随时“播放”和“暂停”。这是正确的答案。提取元素并不困难——简单的JQuery基础。
$("#audio").stop();
var status = "play"; // Declare global variable
if (status == 'pause') {
status='play';
} else {
status = 'pause';
}
$("#audio").trigger(status);