Skip to content Skip to sidebar Skip to footer

Android Audiotrack Clicks At Start And End Of Sound

I get clicks at the start and end of playing a sound (a wav from the sdcard). It must be something to do with the track buffering but I dont know the solution. Also, I create a new

Solution 1:

Isn't it possible that you play the PCM wave file header too?

Each PCM wave file has a small header at the beginning of the file, if you play that, you play the header bytes which could result in a click at te beginning.

Solution 2:

I have had these same clicks at the beginning of each track using AudioTrack. I solved it by turning track volume off, waiting half a second, and then restoring normal volume. I no longer have any clicks. Here's the relevant bit of the code.

    at.play();
    at.setStereoVolume (0.0f, 0.0f);

    new Thread (new Runnable(){
        publicvoidrun() {
            try{
                Thread.sleep(500);
            } catch (InterruptedException ie) { ; }
            at.setStereoVolume (1.0f, 1.0f);
        }
    }).start();

    new Thread (new Runnable(){
        publicvoidrun() {
            int i = 0;
            try{
                buffer = newbyte[512];
                while(((i = is.read(buffer)) != -1) && !paused){
                    at.write(buffer, 0, i);
                    position += i;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (!paused){
                parent.trackEnded();
            }
        }
    }).start();
}

Post a Comment for "Android Audiotrack Clicks At Start And End Of Sound"