2016-04-05 61 views
10

Desidero eseguire un'analisi audio dal vivo su iPhone. Perciò io uso l'analizzatore webkit AudioContext.webkitAudioContext createMediaElementSource su iOS Safari non funziona

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); 

Questo funziona bene in Chrome su Mac. Funziona anche su Safari, quando si aggiunge il sito web per la homescreen, con

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

Non funziona su Safari senza aggiungere il sito alla homescreen. Non funziona quando si utilizza il sito incorporato con iOS wkwebview. Questo è ciò che voglio raggiungere. Quando non funziona, la matrice di frequenzaData è piena di zeri.

Chiunque abbia riscontrato questo problema?

Grazie in anticipo

+0

Dovrebbe essere disponibile secondo: http://caniuse.com/#search=AudioContext è possibile eseguire il test utilizzando l'esempio di mozilla qui: https://developer.mozilla.org/en-US/docs/Web/API/AudioContext ma potrebbe essere la visualizzazione Web incorporata è una build diversa dalla versione del browser –

risposta

0

Solo nel caso in cui questo non è stato ancora risolto, secondo https://caniuse.com/#search=webaudio Safari continua a non supportare createMediaElementSource, quindi penso che sei fuori di fortuna qui. Il supporto di Safari per l'API WebAudio non è eccezionale, sfortunatamente.