2015-05-29 2 views
0

Я новичок в Javascript, и я пытаюсь разрешить пользователю включать или выключать звук одним нажатием кнопки. Я создал функцию для переключения аудио:Как переключить звуковой элемент dom

function playPause(id){ 
soundElement = document.getElementById(id); 
if (soundElement.pause) { 
    soundElement.play(); 
} 
else 
    soundElement.pause(); 
} 

Тогда код функционировать при нажатии клавиш:

if (keys.hasOwnProperty(77)){ 
soundElement.playPause(); 
} 

У меня есть несколько аудио фрагментов, которые проходят через soundElement. Нужно ли мне перебирать все звуковые элементы, чтобы пользователь мог отключить все аудио или есть ли способ приостановить все звуковые элементы, не зацикливая каждый идентификатор?

ответ

0

Вы можете использовать querySelectorAll() вместо:

var audioElements = document.querySelectorAll("audio"); 

Тогда итерацию каждого и переключить состояние, например:

var i = 0, el; 
while(el = audioElements[i++]) playPause(el); 

function playPause(soundElement) { 
    if (soundElement.paused) { 
    soundElement.play(); 
    } 
    else 
    soundElement.pause(); 
} 

Для проверки состояния приостановки использования paused вместо pause (последний метод).

Обратите внимание, что нет гарантии, что звук воспроизводится/загружен и т. Д., Поэтому необходима некоторая проверка ошибок, чтобы сделать эту работу безупречной.

Смежные вопросы