我想用JavaScript生成一系列MIDI音符,然後播放它。許多插件支持MIDI,但我不知道任何支持「data:」URL。生成MIDI內容並不是什麼大問題 - 但是將這些內容提供給玩家是。任何人都知道如何做到這一點 - 如果不是一般的話,那麼至少對於像QuickTime這樣的特定插件來說呢?在javascript中生成MIDI
回答
聽起來最簡單的方法是將MIDI數據傳遞給一個PHP腳本,然後返回輸入。 然後您可以使用「yourscript.php?your-midi-data」而不是「data:your-mini-data」。
非常整潔的問題。最近我使用base64編碼圖像進行了很多工作,並且經常使用http://www.greywyvern.com/code/php/binary2base64進行圖像編碼。我只是試圖轉換一個MIDI文件,並將base64文本流轉換爲HTML格式,並且在Firefox中表現得很好(令我驚訝)。下面的代碼(與簡潔,刪除了Base64編碼流):
<embed
autostart="true"
loop="false"
volume="100"
hidden="false"
src="data:audio/x-midi;base64,abc...."
></embed>
我不知道這是可能的從二進制圖像去JS爲Base64,但我懷疑從MIDI去可能。這是一個開始。
你可能想看看我的以下博客文章。這是關於一個圖書館,正是你所要做的,客戶端。請注意,瀏覽器中的跨瀏覽器MIDI再現性並不是真的一致,但。
http://sergimansilla.com/blog/dinamically-generating-midi-in-javascript/
除了使用Javascript(見塞吉的帖子),你可以使用Java與我的JavaScript到Java橋後備方法暴露出MIDI框架的部分:http://mudcube7.blogspot.com/2010/08/dynamic-midi-generation-in-browser.html
的QuickTime數據url和Firefox和Chrome一起工作(最近發佈,沒有測試版)你必須遵循quicktime website的指示:通過調用QT_WriteOBJECT
函數初始化QuickTime函數(我必須提供指向Beethoven mp3文件的初始有效src,以防止抱怨 - 也許這是沒有必要的),註冊聽衆詳細說明在所述在獲得回調函數qt_load後,調用document.movie1.SetURL(myDataURL)
方法。我在數據url中使用了base64編碼:"data:audio/midi;base64,..."
。 (內容是由javascript生成的)。所有事情都很奏效:Play(),Stop()等等。最難的部分是閱讀他們的紀念文檔(注意它也有「HTML」部分)
鏈接不好... – milesaron 2016-12-23 03:15:45
- 1. 從Javascript生成現場MIDI
- 2. C#XNA生成MIDI
- 3. 生成的midi音符長度
- 4. 從python中的任意MIDI文件生成一個MIDI序列序列
- 5. 在JavaScript中生成php?
- 6. 在Javascript中模擬MIDI節拍時鐘
- 7. C#/。NET MIDI音序器:解析MIDI文件並生成定時音符信息
- 8. 有沒有人從TFRecode文件中用洋紅生成midi是否成功?
- 9. Javascript MIDI文件播放器
- 10. python與fluidsynth合成midi
- 11. PHP - 生成JavaScript
- 12. 生成的JavaScript
- 13. 在JavaScript上生成mongo ID?
- 14. 如何在javascript中生成淺色調
- 15. 在Sinatra幫助程序中生成JavaScript
- 16. 在javascript中動態生成文本框
- 17. 在IE7中顯示javascript生成的div
- 18. 如何在javascript中生成CMAC-AES
- 19. php在javascript中生成圖像
- 20. 在JavaScript中生成多個隨機數
- 21. 在javascript中生成2個DOM元素
- 22. 在python中生成javascript字符串
- 23. 在javascript中動態生成文本框
- 24. 在javascript中動態生成行?
- 25. 在JavaScript中從數組生成PDF
- 26. 在asp.net中生成JavaScript文件mvc
- 27. 在循環中生成一個Javascript id
- 28. 下載Javascript生成的XML在IE6中
- 29. 在JavaScript中生成一個隨機數
- 30. 在php生成的按鈕中的JavaScript
Sergi,你的解決方案似乎不能解決主要問題。如果使用「嵌入」或「對象」,則無法控制播放。 QuickTime界面解決了這個問題。你可以從JavaScript完全控制它,甚至可以動態地生成和添加東西。它適用於數據網址。這是原始問題的一個重點。 – shurik 2011-01-29 11:58:42