2013-02-13 59 views
1

我正在使用AudioRecord.read(byte[], int, int)來記錄16位PCM數據。使用這種方法,我可以在我的設備上獲得小端數據,但我不知道它是否適用於其他設備。雖然我看到API參考,但我無法弄清楚。Endian在不同設備上的行爲有所不同

Endian依賴於本機順序嗎?

回答

1

您不用擔心,Android會爲您妥善保管。在Java中

數據總是表示爲大端

+0

謝謝。我知道,但我必須將數據轉換爲簡短的數據,並且必須將數據寫入本機進程。所以我必須關心它。 – kngtrr 2013-02-13 17:28:05

+0

看到java :),但是是的,這將是所有的時間大endian – 2013-02-13 17:33:29

+0

謝謝,但「所有的時間」是錯誤的。再次檢查我的問題。 – kngtrr 2013-02-13 23:37:31

0

遺憾的是它並不像以前(3歲)的回答顯示的那麼簡單。

如果您使用16bit PCM,Android會將其編碼爲本機端編碼。見AudioFormat。測試表明,在Nexus 5x上,這是一款小米MI3s報告的LE。

要獲得設備的永久性,可以使用ByteOrder.nativeOrder()

相關問題