2009-10-30 4 views
4

나는 interwebs의 Nintendo emulator written entirely in JavaScript을 방금 보았지만 소리가 나지 않았습니다. 저에게 생각이 들었습니다 : 자바 스크립트를 사용하여 브라우저에서 사운드를 합성 한 다음 재생할 수있는 방법이 있습니까? 일반적으로 가능하지 않다면 Safari/Opera/FireFox/IE/Etc가 있습니다. 확장을 가능하게 할 확장 기능이 있습니까?자바 스크립트를 사용하여 브라우저에서 합성 사운드를 재생할 수 있습니까?

사운드 합성 기술에 대해 묻지 않고 브라우저에서 실행되는 코드로 합성 된 사운드를 재생하는 기술에 대해서만 설명합니다.

답변

3

나는 JavaScript가 ExternalInterface (http://www.adobe.com/devnet/flash/articles/external_interface.html)를 사용하여 플래시와 대화하는 것이 가장 좋을 것이라고 생각합니다. Flash에는 이제 사운드 버퍼와 범용 ByteArray 클래스간에 데이터를 전송하는 방법이 있습니다.

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

당신은 플렉스 SDK http://www.adobe.com/products/flex/를 사용하여 무료로 플래시를 개발할 수 있습니다.

2

대부분의 개발자는 JavaScript로 응용 프로그램에 사운드를 추가하려는 경우 SoundManager 2을 사용합니다. JavaScript가 Flash 8 및 9 기능과 상호 작용할 수 있도록 후크가 있습니다. 나는 당신이 내가 추측하고있는 Byte Data로 작업 할 수있는 능력이 노출되어 있는지 확신 할 수 없다.

2

그것은 NES 에뮬레이터의 저자를 밝혀 동적 오디오 라이브러리를 발견했다 :

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

나는 그것을 시도하지 않은,하지만 워드 프로세서 유망 찾습니다

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

쓰기 (샘플); // -1.0에서 1.0 사이의 부동 소수점 오디오 샘플 배열을 재생합니다.

1

이론적으로 사운드를 합성 한 다음 데이터 URL을 사용하여 브라우저에서 재생할 수 있어야합니다.

실제로 Steven Wittens는 실제로이 기술의 demo을 제작했습니다. encodeAudio8bitencodeAudio16bit 함수는 마법이 발생하는 곳입니다.

관련 문제