AudioTrack을 사용하여 SD 카드에서 오디오 파일을 재생하고 싶습니다. 이 코드를 사용해 보았습니다 :AudioTrack을 사용하여 SD 카드에서 오디오 (mp3, ogg) 재생
int minBufferSize = AudioTrack.getMinBufferSize(8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
int bufferSize = 512;
AudioTrack at = new AudioTrack(AudioManager.STREAM_MUSIC, 8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, minBufferSize,
AudioTrack.MODE_STREAM);
int i = 0;
byte[] s = new byte[bufferSize];
FileInputStream fin = new FileInputStream(path);
DataInputStream dis = new DataInputStream(fin);
at.play();
while ((i = dis.read(s, 0, bufferSize)) > -1)
{
at.write(s, 0, i);
}
at.stop();
at.release();
dis.close();
fin.close();
그러나 오디오 파일을 제대로 재생하지 못합니다. 오리지널 오디오가 아닌 약간의 노이즈 사운드를 재생합니다.