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(“暂停”)访问暂停的属性也很有用;而不是<代码> 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);