You cannot just store an ArrayBuffer in an array and re-read the file from it. The buffer is used to load a fixed length of bytes and keep them coming so that you don't run out of bytes to play.
Instead you should read all the bytes from the ArrayBuffer into a byteArray and store the byteArrays in an array. You can then replay all the songs from the byte arrays.
If you already have the songs locally (since your question doesn't state where you get the files from) you can just store the path to the file and then reload the file from that.
I hope this makes sense.