簡體   English   中英

是否可以使用JavaScript在瀏覽器中播放合成聲音?

[英]Is it possible to play synthesized sound in the browser using JavaScript?

我剛剛在互聯網上遇到了一個完全用JavaScript編寫Nintendo模擬器 ,但它沒有聲音。 它讓我想到:有沒有辦法在瀏覽器中使用JavaScript合成聲音然后播放它? 如果一般情況下不可能,那么有沒有Safari / Opera / FireFox / IE / Etc。 可以實現的擴展嗎?

我不是要問合成聲音的技術,只是用於播放由瀏覽器中運行的代碼合成的聲音的技術。

我想你最好的辦法是使用ExternalInterface讓Javascript與Flash對話( http://www.adobe.com/devnet/flash/articles/external_interface.html )。 Flash現在有一種在聲音緩沖區和通用ByteArray類之間傳輸數據的方法。

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

您可以使用Flex SDK http://www.adobe.com/products/flex/免費開發Flash。

大多數開發人員使用SoundManager類2時,他們想將聲音添加到他們與JavaScript應用。 它有鈎子,因此JavaScript可以與Flash 8和9功能進行交互。 我不確定它是否暴露了使用字節數據的能力,我想你是在追求,我從來沒有處理過這個問題。

事實證明,NES模擬器的作者找到了一個動態音頻庫:

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

我沒有嘗試過,但文檔看起來很有希望:

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

寫(樣本); //播放-1.0到1.0范圍內的浮點音頻樣本數組。

從理論上講,應該可以合成聲音,然后讓瀏覽器使用數據URL播放它們。

在實踐中,Steven Wittens實際上已經制作了這種技術的演示 encodeAudio8bitencodeAudio16bit函數是魔術發生的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM