[android] 안드로이드 Audio 오디오 송출

안드로이드 앱을 작성할 때 경우에 따라서 소리를 재생하고 제어해야 할 때가 있습니다. 이번 블로그에서는 안드로이드 앱에서 오디오를 송출하는 방법에 대해 살펴보겠습니다.

1. MediaPlayer를 사용하여 오디오 재생

가장 간단한 방법은 MediaPlayer 클래스를 사용하여 오디오 파일을 재생하는 것입니다.

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.audio_file);
mediaPlayer.start();

위 코드에서 R.raw.audio_file은 앱의 리소스로 포함된 오디오 파일을 가리킵니다. start() 메서드를 호출하여 오디오를 시작할 수 있습니다.

2. SoundPool을 사용하여 짧은 음원 파일 재생

만약 짧은 음원 파일을 반복 재생해야 할 경우, SoundPool 클래스를 사용하는 것이 더 효율적일 수 있습니다.

SoundPool soundPool = new SoundPool.Builder().build();
int soundId = soundPool.load(this, R.raw.short_audio_file, 1);
soundPool.play(soundId, 1.0f, 1.0f, 1, 0, 1.0f);

위 코드는 SoundPool을 초기화하고 음원 파일을 로드한 후, play() 메서드를 호출하여 음원 파일을 재생합니다.

3. AudioTrack을 사용하여 낮은 레벨에서 오디오 제어

AudioTrack 클래스를 사용하면 낮은 레벨에서 오디오 데이터를 제어할 수 있습니다.

int streamType = AudioManager.STREAM_MUSIC;
int sampleRate = 44100;
int channelConfig = AudioFormat.CHANNEL_OUT_STEREO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int bufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat);

AudioTrack audioTrack = new AudioTrack(streamType, sampleRate, channelConfig, audioFormat, bufferSize, AudioTrack.MODE_STREAM);
audioTrack.play();

AudioTrack을 초기화하고 play() 메서드를 호출하여 오디오를 재생합니다.

결론

이번 포스트에서는 안드로이드 앱에서의 오디오 송출에 대해 알아보았습니다. MediaPlayer를 사용하는 간단한 방법부터 SoundPoolAudioTrack을 사용하여 더 세밀한 오디오 제어가 가능한 방법까지 다뤘습니다. 언제든지 알맞은 방법을 선택하여 안드로이드 앱에서 원하는 오디오를 송출할 수 있을 것입니다.

안드로이드 개발자 사이트에서 더 자세한 내용을 확인할 수 있습니다.