Список событий принудительного запуска с нажатием кнопки - PullRequest
1 голос
/ 16 мая 2019

Использование приведенного ниже кода, чтобы сделать базовый аудиофайл музыкальным проигрывателем для воспроизведения файлов в папке. При открытии и после воспроизведения (кнопка или в масштабе) он воспроизводит случайный файл в папке «Музыка». Когда этот файл заканчивается, он загружает другой случайный файл и воспроизводит его, а затем продолжает повторять процесс. Вопрос - Можно ли добавить кнопку onclick = (т.е. Следующая песня), чтобы вызвать событие «Закончено» и вызвать следующую песню при нажатии. Я думаю, что мне нужно добавить music.stop () также. Я просто пытаюсь заставить проигрываемую песню закончить и заставить цикл загрузить следующую песню. Похоже, что «завершенное» событие доступно только для чтения и не может быть вручную изменено на true.

    <html>  
<head>
<body> 
<!-- <audio id="player" controls><source src="music/0.mp3" type="audio/mp3"></audio> -->
<div align="center" id="soundtrack">  
<script>
var WhichSong="Music2/song"+(Math.floor(Math.random()*23))+".mp3"

document.getElementById('soundtrack').innerHTML="<audio controls id='player'><source src=\"" + WhichSong + "\"></source>Your browser does not support the audio element.</audio>";

    var x = 0;
    var music = document.getElementById("player");
    music.addEventListener("ended", function() {
    x=x+1;
    music.src = "Music2/song"+(Math.floor(Math.random()*23))+".mp3";
    music.load();
    music.play();       
    });
    </script>
    <br/>
  <button onclick="document.getElementById('player').play()">Play Music</button> 
  <button onclick="document.getElementById('player').pause()">Pause Music</button>
  <button onclick="document.getElementById('player').muted=true">Mute</button>
  <button onclick="document.getElementById('player').muted=false">Un-mute</button>
  <button onclick="document.getElementById('player').volume += 0.1">Vol +</button> 
  <button onclick="document.getElementById('player').volume -= 0.1">Vol -</button>

</div>  
</body>

1 Ответ

1 голос
/ 29 мая 2019

Самый простой способ - присвоить слушателю события переменную и затем вызвать эту функцию из своего щелчка.

var endedListener = function() {
    x=x+1;
    music.src = "Music2/song"+(Math.floor(Math.random()*23))+".mp3";
    music.load();
    music.play();       
    };
music.addEventListener("ended", endedListener);

<button onclick="endedListener()">Next</button>

Имейте в виду, что вызов endedListener на самом деле не останавливает звукот игры.Он просто запускает вашу собственную логику функций.

...