2014-02-22 54 views
0

例如,Web Audio API的AudioBuffer對象包含一些存儲音頻數據的陣列緩衝區。它們沒有記錄在我能找到的任何地方,但您可以通過調用getChannelData方法訪問它們,該方法返回Float32Array。對Float32Array或其底層數組緩衝區的引用必須存儲在AudioBuffer對象中的某處,對吧?我是否可以擴展AudioBuffer對象以通過除提供的getChannelData方法之外的某種方式訪問​​此Float32Array?顯然我需要知道它的名字,但假設我做了,我可以訪問它嗎?或者它存儲在一些瘋狂的編譯格式中,我不希望這樣做?是否可以訪問未記錄的API成員?

+0

您可以訪問所有暴露的函數和變量。但是,爲什麼不直接使用[Float32Array](https://developer.mozilla.org/en-US/docs/Web/API/Float32Array)呢? – ComFreek

+0

產生這個更廣泛的問題的具體問題在這裏:http://stackoverflow.com/questions/21957824/manually-put-pcm-data-into-audiobuffer –

回答

2

如果屬性沒有記錄,並且在檢查對象時沒有顯示,那麼它很可能無法訪問。考慮以下內容,說明如何防止訪問「私有」數據:

var Whatever = (function() { 
    var hidden = 1; 
    return { 
     getHidden: function() { 
      return hidden; 
     } 
    }; 
}()); 

console.log(Whatever.hidden); // undefined 
console.log(Whatever.getHidden()); // 1 
+0

啊,這是令人失望的,但謝謝! –

相關問題