Измените с Play на Pause, только если аудио ссылка работает - PullRequest
0 голосов
/ 09 января 2019

Если значение является неверной ссылкой на поток, кнопка «Воспроизведение» по-прежнему меняется на «Пауза».

Это то, что я пытался предотвратить.

Нажатие «Set» не должно приводить к изменению кнопки «Play» с «Play» на «Pause», если звук не работает.

Код: https://jsfiddle.net/vhgL96se/124/

Изображение

(function iife() {
    "use strict";
    const player = document.getElementById("player");
    const button = document.getElementById("button");
    const value = document.getElementById("input");
    const sent = document.getElementById("sent");
    const input = document.getElementById("clear");
    let canPlay = false;

    function playPauseIcon(play) {
        if (!canPlay) {
            return;
        }
        if (play) {
            button.classList.add("is-playing");
        } else {
            button.classList.remove("is-playing");
        }
    }
    button.addEventListener("click", function () {
        if (!canPlay) {
            return;
        }
        if (player.paused) {
            player.play();
            playPauseIcon(true);
        } else {
            player.pause();
            playPauseIcon(false);
        }
    });
    button.addEventListener("mousedown", function (evt) {
        if (evt.detail > 1) {
            evt.preventDefault();
        }
    }, false);
    sent.addEventListener("click", function () {
        player.src = value.value;
        player.volume = 1.0;
        playPauseIcon(true);
    });
    input.addEventListener("click", function () {
        value.value = "";
        button.classList.remove("is-playing");
        player.pause();
        canPlay = false;
    }, false);
    player.onloadstart = function () {
        if (value.value !== "") {
            canPlay = true;
            playPauseIcon(true);
        }
    };
}());

1 Ответ

0 голосов
/ 09 января 2019

Вместо этого он должен быть заменен на oncanplay, и тогда он будет работать как надо.

Кнопка воспроизведения меняется с воспроизведения на паузу

http://hi5.1980s.fm/;

Кнопка воспроизведения не меняется с воспроизведения на паузу когда поток не действителен.

ч: //hi5.1980s.fm/;

https://jsfiddle.net/vhgL96se/132/

player.oncanplay = function () {
    if (value.value !== "") {
        canPlay = true;
        playPauseIcon(true);
    }
};
...