¿Alguien puede ayudarme a verificar por qué este código no funciona en Safari (osx)? El audio se está reproduciendo, pero no hay visualización. Intenté todas las pistas que encontré, pero todavía no tuve suerte. Necesito mencionar que funciona bien en Chrome (osx) Muchas gracias por la ayuda
function getDataFromAudio() { var freqByteData = new Uint8Array(analyser.fftSize / 2); var timeByteData = new Uint8Array(analyser.fftSize / 2); analyser.getByteFrequencyData(freqByteData); analyser.getByteTimeDomainData(timeByteData); return { f: freqByteData, t: timeByteData }; // array of all 1024 levels }Para ser más precisos, la visualización y getByteFrequencyData/getByteTimeDomainData no funciona para radios de Internet (Icecast/shoutcast), pero funciona para un solo mp3 remoto.
Creo que esto es en realidad un error en Safari.
Los datos del analizador son todos ceros, lo cual es típico si hay un problema de CORS. Sin embargo, no veo ningún problema con los encabezados de respuesta de esa transmisión de Icecast. Access-Control-Allow-Origin se establece en * , que es lo mismo que el flujo de GitHub.io.
Las únicas dos diferencias significativas en las respuestas que veo:
Content-Type erróneo de audio/mp3 . (Debería ser audio/mpeg .)Sospecho que Safari está entregando la transmisión a algún otro componente, y su salida no se puede capturar con MediaElementSourceNode.
Sin embargo, espero estar equivocado, y la gente puede mostrar una solución real y rechazar esta respuesta. :-)