[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
를 사용하는 간단한 방법부터 SoundPool
과 AudioTrack
을 사용하여 더 세밀한 오디오 제어가 가능한 방법까지 다뤘습니다. 언제든지 알맞은 방법을 선택하여 안드로이드 앱에서 원하는 오디오를 송출할 수 있을 것입니다.
안드로이드 개발자 사이트에서 더 자세한 내용을 확인할 수 있습니다.