Api Web Audio: audioContext.createConstantSource () не реализован в Safari; Обход (ы)? - PullRequest
1 голос
/ 23 апреля 2020

Я использую web audio api, чтобы провести серию демонстраций простых компьютерных концепций musi c / electronici c musi c. В одном примере я показываю, как построить square wave, последовательно добавляя синусоидальные волны, идущие вверх по серии гармоник c, и отображая осциллографическое представление процесса.

Я включаю ползунок входного диапазона для регулировки основной частоты по желанию, что требует использования constantSourceNode: частоты всех генераторов необходимо менять одновременно, в противном случае они выходят из фазы, разрушая визуальные эффекты демонстрации. У меня это отлично работает в chrome, но кажется, что

audioContext.createConstantSource()

не поддерживается в Safari. Любые предложения для обходного / альтернативного внедрения?

( Вот ссылка на кодовый блок демонстрации, работающий в chrome).

1 Ответ

2 голосов
/ 23 апреля 2020

В Safari пока нет реализации для ConstantSourceNode. Если вы хотите сохранить свой код таким, какой он есть, вы можете использовать standard-audio-context , который включает в себя реализацию ConstantSourceNode для браузеров, которые не поддерживают его изначально.

Но вы также можете создать свой собственный, если вы этого хотите. Для достижения того же эффекта можно использовать петли AudioBufferSourceNode с постоянным сигналом и GainNode. AudioBuffer, используемый с AudioBufferSourceNode, должен иметь как минимум две выборки, потому что если у него только одна выборка, Safari не будет l oop it.

...