Веб-аудио 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 имеет аналогичную проблему, где частота дискретизации записи и воспроизведения должна быть одинаковой. Так как это обычно не происходит при записи с встроенного микрофона, на какое-то время может показаться, что запись звука всегда была тихой.