我試圖通過一個大小爲65536字節的緩衝區流式傳輸音頻。Java System.arraycopy數組邊界
如果我將一段音頻數據複製到緩衝區System.arraycopy()
並且剩餘的音頻數據小於65536,會發生什麼?它會拋出一個錯誤還是會將剩餘的字節複製到緩衝區中而沒有任何錯誤?
這是我的代碼現在:
int offset = 0;
while(isAudioActive)
{
byte[] buffer = new byte[65536];
System.arraycopy(this.currentFile.getSampledata().getData(), 65536 * offset, buffer, 65536 * offset, 65536);
//<<writing Audio to track here>>
offset++;
}
所以系統拷貝音頻數據到小件的緩衝。 我正在使用小片,因爲我想稍後暫停/停止音樂。
你嘗試執行它嗎? –
或閱讀文檔? –
據推測,getData()(在你的例子中)是讓你訪問你的音頻數據的*全部*字節?如果是這樣,爲什麼你需要緩衝任何東西? (順便說一下,這將有助於瞭解'currentFile'是什麼。) – Paul