Можно ли воспроизводить синтезированный звук в браузере, используя JavaScript? - PullRequest
4 голосов
/ 30 октября 2009

Я только что наткнулся на эмулятор Nintendo, написанный полностью на JavaScript на межсетях, но у него нет звука. Это заставило меня задуматься: есть ли способ синтезировать звук в браузере, используя JavaScript, а затем воспроизвести его? Если это вообще невозможно, то есть ли Safari / Opera / FireFox / IE / Etc. расширения, которые сделали бы это возможным?

Я не спрашиваю о методах синтеза звука, а просто о способах воспроизведения звуков, которые были синтезированы с помощью кода, выполняемого в браузере.

Ответы [ 4 ]

3 голосов
/ 30 октября 2009

Я полагаю, что вам лучше всего поговорить о Javascript с Flash, используя ExternalInterface (http://www.adobe.com/devnet/flash/articles/external_interface.html). Flash теперь позволяет передавать данные между звуковыми буферами и классом общего назначения ByteArray.

http://www.adobe.com/devnet/flash/articles/dynamic_sound_generation/

Вы можете бесплатно разрабатывать Flash, используя Flex SDK http://www.adobe.com/products/flex/.

2 голосов
/ 19 июля 2011

Оказывается, автор эмулятора NES нашел динамическую аудиобиблиотеку:

https://github.com/bfirsh/dynamicaudio.js

Я не пробовал, но документы выглядят многообещающе:

var dynamicaudio = new DynamicAudio ({'swf': «/static/dynamicaudio.swf'})

запись (образцы); // Воспроизведение массива сэмплов с плавающей запятой в диапазоне от -1,0 до 1,0.

2 голосов
/ 30 октября 2009

Большинство разработчиков используют SoundManager 2 , когда хотят добавить звук в свое приложение с помощью JavaScript. У него есть хуки, поэтому JavaScript может взаимодействовать с функциями Flash 8 и 9. Я не уверен, открыла ли она возможность работать с байтовыми данными, которые, я полагаю, вам нужны, мне никогда не приходилось сталкиваться с этим

1 голос
/ 17 ноября 2012

Теоретически должна быть возможность синтезировать звуки, а затем заставить браузер воспроизводить их, используя URL-адрес данных.

На практике Стивен Виттенс на самом деле создал демо этой техники. Функции encodeAudio8bit и encodeAudio16bit - вот где происходит магия.

...