굉장히 짧은 효과음을 내는 wav파일을 재생하려고 하는데,


getMinBufferSize 보다 작은 크기를 재생하려고 하니 재생이 안되는 경우가 발생합니다.


코드는


final byte[] sndBuf = new byte[size];

Natives.GetSoundFile2(1, 0, 4, sndBuf);

if(sndBuf != null)

{

new Thread(new Runnable() {

public void run() {

int intSize = android.media.AudioTrack

.getMinBufferSize(44100,

AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT);

AudioTrack track = new AudioTrack(

//AudioManager.STREAM_MUSIC, 44100,

MgrConfigGlobal.getInstance().m_iSoundDevice, 44100,

AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT, intSize,

AudioTrack.MODE_STREAM);

track.play();

//track.write(arrbuff, 0, arrbuff.length);

track.write(sndBuf, 0, sndBuf.length);

track.stop();

track.release();

//sndBuf = null;

}

}).start(); // 스레드 실행

}


이런 식으로 만들었구요


getMinBufferSize 의 값은 4096, SndBuf의 크기는 3926이 나옵니다.


SndBuf는 jni를 이용해 파일에서 읽어오는 방식을 취하고 있습니다. 


어떻게 해야 짧은 wav 파일을 재생 할 수 있는지 알려주실 분 있나요?


wav 파일 첨부합니다.