2011-06-07 61 views
-1

「當前」幀位置實際上意味着什麼?這在文檔中沒有描述。TargetDataLine.getFramePosition()vs read()

如果剛纔我看到從TargetDataLine的一些緩衝,之後呼籲getFramePosition - 那麼這將是

  1. 第一
  2. 最後
  3. 其他

框的位置在重新緩衝區?

回答

1

綜觀文檔:

獲取在 音頻數據中的當前位置,在樣本幀。 框架位置測量從打開後的線獲取或呈現 的 樣本幀的數量。 該返回值將在2^31幀後繞回 。建議使用 來代替getLongFramePosition。

在我看來這將是自打開線路以來的第一幀。

此外,我想指出API指定推薦使用getLongFramePosition來代替。

+0

你讀過關於TargetDataLine.read(byte [] b,int off,int len)方法嗎?文檔說你可以讀取內部緩衝區的任何部分。例如,內部緩衝區可以包含1000個幀,但是您可以讀取10個。它將是前10個,即從0到9.接下來,您將讀取10個幀,它將從10到19等等。由於您無法控制閱讀位置,因此在內部進行控制。此外,「尾巴」應該在內部是已知的。因此TargetDataLine是字節的FIFO。這意味着幀結構可以指代FIFO的頭部和尾部。無論哪個文件都是未知的! – Dims 2011-06-07 18:29:20

+0

@Dims,你在問什麼?我很困惑,因爲這個評論不符合你的問題? – jzd 2011-06-07 18:46:30

+0

我的問題是幀號(由getFramePostition()和getLongFramePosition()返回)和read()返回的幀數之間的關係。我需要通過實驗來弄清楚這一點。 – Dims 2011-06-09 08:39:27