Pergunta

Here is a super simple example that I am trying to run on an iphone in chrome. Other web audio API examples like this one http://alxgbsn.co.uk/wavepad/ work, but not mine :(

<!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>

Any idea what's wrong?

EDIT

To summarize the answer :

  1. start the audio in response to user interaction
  2. check that mute switch is off
Foi útil?

Solução

iOS will only let you start playing sound with the Web Audio API as a result of a user action.

Try putting that code inside of some kind of event handler.

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top