Веб-аудио API - iPad4 сафари не в порядке?

У меня есть простой синтезатор, который воспроизводит тон в 100 Гц с помощью OscillatorNode. Мой синтезатор на Safari iPad 4 ios 7.1.1 стоит почти на одном уровне, по сравнению со всеми другими браузерами, которые я пробовал (Chrome iPad 4, Safari Ipad 2 IOS 7.1.1, Safari iPhone 5, Chrome и Safari на моем Mac). Я убедился, что частота дискретизации браузера, настроенного для iPad 4, составляет 44100 Гц. Настроенные браузеры сообщают о той же частоте дискретизации, 4400 Гц.

Мой код довольно прост, и я не понимаю, как это может быть ошибка программирования с моей стороны. Особенно с учетом того, что iPad 2 и iPad 4 работают под управлением одной и той же ОС (и, предположительно, одной и той же версии сафари). Кажется, что происходит что-то странное, низкоуровневое и аппаратно-зависимое.

Это известная проблема? Если так, есть ли способ проверить это или обойти это?

===== изменить ========

Вот пример (только сафари) - простой тест осциллятора. Воспроизведение с одним шагом на моем iPhone 5s, другое - на моем iPad 4. http://www.morganpackard.com/webaudio_test/OscillatorTest.html

      var context = new webkitAudioContext();
      var osc = context.createOscillator();
      osc.connect(context.destination);
      osc.frequency.value = 440;
      osc.start(0);

1 ответ

Вероятно, это связано с тем, что одно устройство воспроизводит частоту 44,1 кГц, а другое - частоту 48 кГц. Вероятно, есть ошибка в браузере, предотвращающая изменение частоты дискретизации и последующее искажение частоты дискретизации.

Chrome на Android имеет аналогичную проблему, где частота дискретизации записи и воспроизведения должна быть одинаковой. Так как это обычно не происходит при записи с встроенного микрофона, на какое-то время может показаться, что запись звука всегда была тихой.

Другие вопросы по тегам