안드로이드 audioTrack을 이용한 PCM 출력
audioTrack을 이용한 오디오 제어
안드로이드에서 audioTrack을 이용한 PCM 오디오 제어를 기록해 놓는다.
뭘 알아야 쓰지
AudioTrack 클래스를 사용하는 방법에 대한 자세한 설명은 안드로이드 스튜디오의 설명을 참고하도록 하자. (참고로 코드에서 AudioTrack 위에 마우스 올려 놓고 Shift + F1 키를 누르면 해당 문서가 뜬다.)
audioTrack Class
public static AudioTrack myAudioTrack;
myAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC // 스트림 타입. 스트리밍으로 할지 여부를 정한다.
44100, // sample rate
AudioFormat.CHANNEL_OUT_MONO, // 채널
AudioFormat.ENCODING_PCM_16BIT, // 오디오 포맷
audioTrackTxsize * 2, // 버퍼 사이즈
AudioTrack.MODE_STATIC);
myAudioTrack.write(pcm_data, 0, pcm_data.length); // 재생을 위한 오디오 싱크에 오디오 pcm 데이터를 기록한다.
myAudioTrack.flush(); // 남아있는 버퍼를 지움.
myAudioTrack.play(); // 오디오 트랙 플레이
myAudioTrack.release(); // 오디오 트랙 릴리즈
myAudioTrack = null; // 초기화