[英]Rendering large pianoroll with html/Javascript
我正在使用新的網絡音頻api開發html5音頻應用程序,為此,我需要一個“鋼琴卷”,一個鍵盤網格,用戶可以在其中繪制大多數音樂制作軟件中使用的音符,我在想兩種方法創建這個。
我需要使用最資源友好的方法,因為音頻的渲染不應受到響應速度慢的界面的影響,用戶應該能夠在鋼琴卷軸中滾動而不會出現任何故障。
我可以創建一個具有視口大小的畫布,並在用戶滾動時讓其呈現,我不知道這樣做是否會更快,有一個較小的畫布,但是需要重新渲染。 對於表,我可以使用固定的單元格,在這些單元格中必須顯示注釋時將其放入(addChild,innerHTML),但不會進行任何平滑滾動,因為它只能按網格大小滾動(如果它是足夠快),並且還需要比靜態表更多的重新渲染。
我有什么被忽略的,哪種解決方案最節省資源?
由於您提到的兩個原因,我都不會在這里碰到桌子,而且很好地插入黑鍵也很棘手。
我傾向於畫布,因為它的速度非常快並且您的資源使用情況是固定的:僅鋼琴卷的像素。 鋼琴鍵也是矩形的,因此拾音邏輯不會太差。
但是,如果您確實希望將鍵作為具有事件的對象,那么就象abesto所提到的那樣,矢量圖形是可行的方法。 d3.js mbostock.github.com/d3/是一個不錯的JS庫,用於基於DOM的可視化,可以幫助創建滾動,將事件分配給鍵以及使滾動動畫流暢。 您可以使用它來呈現HTML(例如DIV)或SVG。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.