@Nohaga

Как создать глобальный аудио объект?

Не знал что в названии вопроса написать.
В общем создаётся переменная с аудиофайлом. И при клике на кнопку он останавливается.
В нескольких других функциях тоже идёт запуск и остановка аудио.
И есть выбор, при клике на дивки создаются другие аудио объекты, но они не работают в других функциях. Что то не пойму как вообще можно было сделать, что бы выбрать допустим в выпадющем списке какое аудио запустить и что бы потом его можно было в какой то функции остановить, его там не видно. В одной функции всё никак не сделать, они создаются при выборе, пауза при клике, плей при клике на другую кнопку, всё разные функции.
var audio = new Audio('sokol_in.mp3');
$('.select > div').on('click', function() {
					if ($(this).attr('data-val')==0) {
						var audio= new Audio('sokol_in.mp3');
						}
					if ($(this).attr('data-val')==1) {
						var audio = new Audio('turtle_in.mp3');
			
					}
					if ($(this).attr('data-val')==2) {
						var audio = new Audio('wolf_in.mp3');
					
					}
					if ($(this).attr('data-val')==3) {
						var audio = new Audio('bear_in.mp3');
					}
	});
document.getElementById('play').addEventListener('click',function(){
      audio.pause();
    });

тут вот первое var audio = new Audio('sokol_in.mp3'); срабатывает, а остальные уже не видно, при клике.

Вот тут как то реализовано omsvet.com , но в коде смотрел, там везде одно имя файла, хз как они аяксом что ли файл копируют при каждом выборе селекта, не понятно. Там только 1 объект создаётся с одним именем файла.
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Вероятно, вот так:

const songsNames = [
    'sokol_in.mp3',
    'turtle_in.mp3',
    'wolf_in.mp3',
    'bear_in.mp3'
];
let audio = new Audio('sokol_in.mp3');
$('.select > div').on('click', () => {
    const index = Number($(this).attr('data-val'));
    audio = new Audio(songsNames[index]);
});
document.getElementById('play').addEventListener('click', () => audio.pause());


В вашем коде вы каждый раз внутри условного оператора создаёте локальную переменную audio, которая уничтожается при выходе из условного оператора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы