У меня есть ссылка на mp3 на amazon s3 (mp3-плеер aws настроен как общедоступный) Звуковой проигрыватель отлично работает.MediaElementAudioSource выводит нули из-за ограничений доступа CORS
Но когда я пытаюсь сделать визуализатор, как только я подключаюсь к аудиоплееру, возникает ошибка CORS. Я не понимаю, почему так должно быть.
Я использую образец MDN для analyserNode в качестве основы https://developer.mozilla.org/en/docs/Web/API/AnalyserNode
<audio id="audio-player-console" src="${AWS_songUrl}" autoplay>
<p>Your browser does not support this audio player </p>
</audio>
Просто чтобы прояснить, до тех пор пока не предпринимается никаких попыток подключиться к analyserdata, то аудиоплеер работает треки без проблем.
Если добавить crossorigin = «анонимный» к звуковому тегу, то я ничего не получаю вообще и аудиоплеер не будет играть трек
<audio id="audio-player-console" src="${AWS_songUrl}" crossorigin="anonymous" autoplay>
<p>Your browser does not support this audio player </p>
</audio>
Моей конфигурацию AWS CORS после «гласности» была набор
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Вот где я пытаюсь подключить аудио тег к audiocontext для визуализатора, который один он начинает сбиваться в CORS проверить
canvasCtx = visualizerCanvas.getContext("2d")
audioCtx = new (window.AudioContext || window.webkitAudioContext)()
var audioSrc = audioCtx.createMediaElementSource(aPlayer)
var analyser = audioCtx.createAnalyser()
audioSrc.connect(analyser)
analyser.fftSize = 2048
var bufferLength = analyser.frequencyBinCount
var dataArray = new Uint8Array(bufferLength)
analyser.getByteTimeDomainData(dataArray)
Я просто не знаю, что я могу сделать. Я установил конфигурацию AWS для публики, разрешил все источники и все заголовки
У меня такая же проблема навсегда. Я потратил много часов на несколько месяцев, пытаясь понять это. Я задал два SO-вопроса (каждый получил upvotes), и я просто задал вопрос на askubuntu.com. Надеюсь, что скоро придумаю решение, которое я смогу затем переделать здесь. – www139
Я полагал, что проблема связана с тем фактом, что узел визуализации вызывает вторую проверку cors после того, как аудио-тег уже сделал один. В этот момент файл находится в другом месте и, таким образом, не выполняет проверку cors. Но я не уверен в этом. Я работал над этим, полностью отказавшись от звукового тега и только используя объект audiocontext для полного игрока: joegrundman.github.io/gplayer-react/ – Jope