2016-04-05 2 views
10

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

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"> 

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

Любой, кто испытал эту проблему?

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

+0

Должно быть доступно в соответствии с: http://caniuse.com/#search=AudioContext, который вы можете протестировать с помощью примера mozilla здесь: https://developer.mozilla.org/en-US/docs/Web/API/AudioContext, но может быть встроенным веб-представлением, это другая сборка из версии браузера –

ответ

0

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

Смежные вопросы