我很困惑。我需要從MIC Android中錄製聲音,所以我用下面的代碼:在Android上的8位字節數組上存儲16Bit音頻
recorder = new AudioRecord(AudioSource.MIC, 44100,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT, N);
buffer = new byte[N];
//...
recorder.read(buffer, 0, N);
我們知道,一個字節數組可以-128之間,而16位的聲音需要更多的存儲存儲值+128(如short和int),但令人驚訝的是,Java和Android有一個record
方法,它將記錄的數據保存到字節數組中。
這怎麼可能?我錯過了什麼?
*而16Bit的聲音需要更多的存儲空間(「* 2字節,而不是'我'定義的'很多'。' –
」當你有16位序列時,有65,536個可能的級別「在這個url中:[link](http://whatis.techtarget.com/definition/bit-depth)假設16666是一個幀值,如何將16666存儲在一個字節數組中?最大可存儲值爲128.幫助我瞭解 –
*「一個16位序列」*可以存儲在兩個字節中,我不知道如何使它變得更簡單,可以試試這個,而不是將它看作一個值爲-128到128的字節,假設它是0到255.這是256個單獨的值。有了兩個字節,我們可以表示256 ** x ** 256個值或65,536個值中的任何一個。 –