Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert byte[] to float[] and back in Java?

I'm reading data from .wav files through InputStream, and read() returns bytes. A sound processing library I use, only accepts float[] to process. After it it done it gives me a float[] back. Now I need to write to the Android's AudioTrack in byte format again.

How do I convert these bytes to floats[], and back to byte[]? I've searched a bit, but everything seemed to be kinda a different situation to mine, and all problems seemed to be solved in different ways... so i'm kinda lost right now.

If something like this conversion is already offered in some kind of library, i'd be glad to hear about that too!

Thanks!

like image 777
user717572 Avatar asked Jan 27 '26 11:01

user717572


1 Answers

You can use of java.nio.ByteBuffer. It has a lot of useful methods for pulling different types out of a byte array and should also handle most of your issues.

        byte[] data = new byte[36];
        ByteBuffer buffer = ByteBuffer.wrap(data);          
        float second = buffer.getFloat(); //This helps to 
        float x = 0;
        buffer.putFloat(x);
like image 67
dbw Avatar answered Jan 29 '26 01:01

dbw



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!