AudioService - GachonCapstoneTeam/TTS_JAVA GitHub Wiki
π΅ AudioService
AudioService
λ μ€λμ€ νμΌμ λ°±κ·ΈλΌμ΄λμμ μ¬μνκΈ° μν Foreground Serviceλ‘, ν/μμΈνλ©΄ μμͺ½μμ 곡ν΅μ μΌλ‘ μ¬μ©λλ TTS μ€λμ€ νλ μ΄μ΄μ
λλ€. MediaPlayer
λ₯Ό κΈ°λ°μΌλ‘ νλ©°, μλΉμ€ λ°μΈλ©μ ν΅ν΄ λ€λ₯Έ μ‘ν°λΉν°λ νλκ·Έλ¨ΌνΈμ μ°λλ©λλ€.
β μ£Όμ κΈ°λ₯ μμ½
κΈ°λ₯ | μ€λͺ |
---|---|
μ€λμ€ μ¬μ λ° μΌμμ μ§ | TTSλ‘ λ³νλ μ€λμ€ νμΌμ μ¬μνκ³ μΌμμ μ§ |
Foreground Service μ μ§ | μ± μ’ λ£ μμλ λ°±κ·ΈλΌμ΄λμμ μ¬μ μ μ§ |
μ¬μ μν μ½λ°± μ λ¬ | SeekBar μ λ°μ΄νΈ λ± UI λκΈ°νλ₯Ό μν Listener μ 곡 |
νΈλ μλ£ μ λ€μ νΈλ μ ν | onCompletionListener νμ© |
νΈλ μμΉ μ§μ μ¬μ/μ΄λ | μ¬μ μμΉ μ§μ λ° seekTo() μ§μ |
μν μ μ§ λ° μ¬μ λκΈ°ν | Home β Original κ° μ¬μ μν μ μ§ μ§μ |
π§ μ£Όμ λ‘μ§ μ€λͺ
prepareAudio()
μ€λμ€ μ€λΉ λ° μ¬μ - public void prepareAudio(String audioFilePath, int position, boolean play) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(audioFilePath);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(mp -> {
if (position > 0) mp.seekTo(position);
if (play) mp.start();
});
}
- μ§μ λ μ€λμ€ κ²½λ‘λ₯Ό κΈ°λ°μΌλ‘
MediaPlayer
λ₯Ό μ€λΉνκ³ , νμ μ λ°λ‘ μ¬μν©λλ€.
μΌμμ μ§ λ° μ¬μμ
public void pauseAudio() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
}
public void resumeAudio() {
if (mediaPlayer != null && isPrepared) {
mediaPlayer.start();
}
}
pauseAudio()
λ μΌμμ μ§,resumeAudio()
λ λ€μ μ¬μμ λ΄λΉν©λλ€.
μ¬μ μμΉ λ³κ²½ λ° μ§νλ₯ μ λ¬
public void seekTo(int position) {
if (mediaPlayer != null && isPrepared) {
mediaPlayer.seekTo(position);
}
}
progressHandler.postDelayed(() -> {
if (mediaPlayer.isPlaying()) {
progressUpdateListener.onProgressUpdate(getCurrentPosition(), getDuration());
}
}, 1000);
- μ¬μ©μκ° SeekBarλ₯Ό μμ§μ΄λ©΄
seekTo()
λ‘ μ΄λνκ³ , μ£ΌκΈ°μ μΌλ‘ νμ¬ μ§ν μνλ₯Ό μ½λ°±μΌλ‘ μ λ¬ν©λλ€.
λ€μ νΈλ μ½λ°± μ€μ
mediaPlayer.setOnCompletionListener(mp -> {
if (nextTrackListener != null) {
nextTrackListener.onTrackCompleted();
}
});
- νΈλ μ¬μμ΄ μλ£λλ©΄
onTrackCompleted()
λ₯Ό νΈμΆνμ¬ λ€μ νΈλμΌλ‘ λμ΄κ° μ μλλ‘ ν©λλ€.
π κ΄λ ¨ ν΄λμ€
HomeFragment
: μ¬μ μμ²μ 보λ΄λ μ£Όμ UIOriginalActivity
: μ 체νλ©΄ νλ μ΄μ΄ μΈν°νμ΄μ€TTSHelper
: ν μ€νΈ β μ€λμ€ νμΌ μμ±