Подтвердить что ты не робот

WebkitAudioContext createMediaElementSource на iOS Safari не работает

Я хочу провести живой анализ звука на iPhone. Поэтому я использую анализатор webkitAudioContext.

var ctx = new (window.AudioContext || window.webkitAudioContext);
var audioGoodmorning = new Audio('assets/sounds/greeting.m4a');
var audioSrc = ctx.createMediaElementSource(audioGoodmorning);
var analyser = ctx.createAnalyser();

analyser.fftSize = 32;
audioSrc.connect(analyser);
audioSrc.connect(ctx.destination);
var frequencyData = new Uint8Array(analyser.fftSize);

analyser.getByteFrequencyData(frequencyData);

Это хорошо работает в Chrome на Mac. Он также работает на Safari при добавлении веб-сайта на рабочий стол с помощью

<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="CHAR">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">

Он не работает в Safari без добавления сайта на рабочий стол. Он не работает при использовании сайта, встроенного в iOS wkwebview. Этого я хочу достичь. Когда он не работает, массив FrequencyData заполняется нулями.

Кто-нибудь испытал эту проблему?

Заранее спасибо

4b9b3361

Ответ 1

На всякий случай это еще не решено, согласно https://caniuse.com/#search=webaudio Safari по-прежнему не поддерживает createMediaElementSource, поэтому Я думаю, тебе здесь не повезло. Поддержка Safari для API WebAudio невелика, к сожалению.