Question

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
Was it helpful?

Solution

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);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top