html5 аудиоплеер - jquery переключить воспроизведение / пауза? - PullRequest
49 голосов
/ 07 июня 2010

Интересно, что я делаю не так?

    $('.player_audio').click(function() {
    if ($('.player_audio').paused == false) {
        $('.player_audio').pause();
        alert('music paused');
    } else {
        $('.player_audio').play();
        alert('music playing');
    }
});

Не получается запустить звуковую дорожку, если я нажму на тэг player_audio.

<div class='thumb audio'><audio class='player_audio' src='$path/$value'></audio></div>

есть идеи, что я делаю неправильно или что мне нужно сделать, чтобы это заработало?

Ответы [ 15 ]

0 голосов
/ 01 мая 2014

Вот мое решение (если вы хотите щелкнуть другой элемент на странице):

$("#button").click(function() {
        var bool = $("#player").prop("muted");
        $("#player").prop("muted",!bool);
        if (bool) {
            $("#player").prop("currentTime",0);
        }
});
0 голосов
/ 21 марта 2014

Причина , почему ваша попытка не удалась, заключается в том, что вы использовали селектор классов, который возвращает коллекцию элементов, а не и (= один!) элемент, который вам нужен для доступа к свойствам и методам игроков. Чтобы заставить его работать, есть три основных способа, которые были упомянуты, но только для обзора:

Получить элемент, а не коллекцию, по ...

  • Итерация по сбору и извлечению элемента с this (как в принятом ответе).

  • Использование идентификатора, если он доступен.

  • Получение элемента коллекции путем его выборки через его положение в коллекции путем добавления [0] к селектору, который возвращает первый элемент коллекции.

0 голосов
/ 17 августа 2013

Вот мое решение с использованием jQuery

<script type="text/javascript">
    $('#mtoogle').toggle(
        function () {
            document.getElementById('playTune').pause();
        },
        function () {
            document.getElementById('playTune').play();
        }
    );
</script>

И рабочая демка

http://demo.ftutorials.com/html5-audio/

0 голосов
/ 02 ноября 2012

, если у кого-то еще есть проблемы с вышеупомянутыми решениями, я заканчиваю тем, что просто иду на событие:

$("#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');
    })}
});

работает для меня.

0 голосов
/ 20 июня 2010

Я сделал это внутри гармошки 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();
        });

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...