2016-11-05 9 views
1

У меня есть следующий код, который отлично работает для воспроизведения аудиофайла при нажатии на shift (KeyCode: 16).Воспроизведение или приостановка аудиофайла (onkeydown) с помощью JavaScript

Что я хочу сделать, это снова нажать shift и приостановить воспроизведение песни. У меня должна быть возможность играть/приостанавливать несколько раз.

HTML:

<audio id="audio" src="audio/song.mp3" autostart="false"></audio> 

JavaScript:

var sound = { 
    16: 'audio' 

}; 

document.onkeydown = function (e) { 
    var soundId = sound[e.keyCode]; 
    if (soundId) document.getElementById(soundId).play(); 
    else console.log("key not mapped : code is", e.keyCode); 
} 

ответ

1

Проверьте это аудио паузы, если он есть, играть, в противном случае приостановить

var sound = { 
    16: 'audio' 
}; 

document.addEventListener('keydown', function(e) { 
    var soundId = sound[e.which || e.keyCode]; 

    if (soundId) { 
     var elem = document.getElementById(soundId); 

     if (elem.paused) { 
      elem.play(); 
     } else { 
      elem.pause(); 
     } 
    } else { 
     console.log("key not mapped : code is", e.keyCode); 
    } 
}); 
+0

Спасибо так много, это работает :) Вы просто забыли «)» в конце –