2015-06-21 9 views
2

Я пытаюсь проанализировать живой аудиопоток с URL-адреса.Web Audio анализатор возвращает нули при использовании createMediaElementSource

Я проверил мой код с микрофонным входом и он работает хорошо, однако, когда я меняю

createMediaStreamSource(micStream) 

Для

var streamURL = new Audio(['http://urlOnRemoteServer']) 
createMediaStreamSource(streamURL) 

Тогда getByteFrequencyData просто возвращает массив нулей (с микрофонным входом возвращает реальные данные вместо нулей).

Похоже, что firefox имеет политику одинакового происхождения, поэтому я переместил свой код на веб-сервер и использовал временный звуковой файл, однако это дает такие же результаты как для Firefox, так и для Chrome, поэтому я предполагаю, что это не делать с браузером поддержки ...

Пример JSFiddle: https://jsfiddle.net/j68fhz9x/

Я использую Firefox/Chrome на Debian Linux

Спасибо заранее

UPDATE

Изучив CORS, я попытался запустить приложение локально, однако проблема сохраняется, даже если у меня есть как скрипт, так и аудиофайл на локальном компьютере.

+0

Что происходит, когда вы подключаете источник к главному выходу? Вы слышите звук? – reg4in

+0

Кроме того, вы могли бы предоставить скрипку или подобное? – reg4in

+0

Скрипт теперь включен в ответ – Slidon

ответ

2

Для использования Firefox и Chrome необходимо использовать один и тот же исходный файл или CORS.

+0

. Я действительно хочу, чтобы разработчики браузеров делали то же самое, что и с XHR и выведите некоторую ошибку/предупреждение на консоль, чтобы хотя бы у разработчика появился какой-то намек на то, почему их звук не работает и как его исправить. – idbehold

+1

Ну, по крайней мере, в Chrome 45 теперь он выводит следующее на консоль, когда вы сталкиваетесь с этой проблемой сейчас: «MediaElementAudioSource выводит нули из-за ограничений доступа CORS для« AUDIO_URL ». Однако Firefox 40 по-прежнему ничего не помогает в консоли. – idbehold

+0

Я посмотрел на запросы CORS, но как это сделать, если URL-адрес передан как параметр строки? например, новый Audio (["cors_url_request"]) – Slidon