Play sound directly from byte array - Java

前端 未结 1 1024
灰色年华
灰色年华 2021-01-15 23:55

I\'m trying to play a sound that is stored as a byte-array using the following method:

byte[] clickSamples = getAudioFileData(\"sound.wav\");
ByteBuffer buff         


        
1条回答
  •  囚心锁ツ
    2021-01-16 00:01

    I've managed to make it work. Here is my new code:

        int tick = 0;
        for (int i = 0; i < clickSamples.length; i++) {
            tick++;
            if (tick >= bufferSize/SAMPLE_SIZE) {
                line.write(clickSamples, i-tick+1, tick);
                buffer.clear();
                tick = 0;
            }
        }
    

    This may seem like a complicated way of playing sound just like with AudioInputStream but now I can do calculations on each tick++ and by doing that I can intervene to exact times if I need to.

    If this sounds silly and there is an easier way of doing this, please let me know.

    Also, the reason it sounded so distorted is that it seems like ByteBuffer drastically changed my sample-values. For what reason I don't know. If anybody knows, please let me know!

    Thank you. :)

    0 讨论(0)
提交回复
热议问题