Простой осциллятор, но без звука с Web audio API на IOS

вот супер простой пример, который я пытаюсь запустить на iphone в chrome. Другие примеры веб-аудио API, как этотhttp://alxgbsn.co.uk/wavepad/ работа, но не моя: (

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>

<body>

  <script>
    var audioContext, osc
    audioContext = new (window.AudioContext || window.webkitAudioContext);
    osc = audioContext.createOscillator()

    osc.connect(audioContext.destination)
    if (osc.noteOn) osc.start = osc.noteOn
    osc.start(0)
    osc.frequency.value = 440
  </script>

</body>

</html>

есть идеи, что случилось?

редактировать

подводя итог ответу:

  1. запустить аудио в ответ на взаимодействие с пользователем
  2. убедитесь, что переключатель отключения звука

1 ответов


iOS позволит вам начать воспроизведение звука с помощью API Web Audio только в результате действия пользователя.

Попробуйте поместить этот код внутри какого-то обработчика событий.

var elem = document.getElementById('play'),
  audioContext = new (window.AudioContext || window.webkitAudioContext),
  osc = audioContext.createOscillator();

osc.connect(audioContext.destination);
if (osc.noteOn) osc.start = osc.noteOn
osc.frequency.value = 440;

play.addEventListener('click', function() {
  osc.start(0);
}, false);