Como executar áudio em aplicações Android
No desenvolvimento de aplicações para Android é provável que você, em algum momento, precise utilizar recursos de reprodução de áudio ou efeitos sonoros. Neste post veja como executar áudio em aplicações Android.
Para executar arquivos de áudio, precisamos utilizar a classe MediaPlayer e instanciar um objeto da classe:
import android.media.MediaPlayer;
...
MediaPlayer mp = null;
Se você for usar botões para acionar os áudios, será necessário implementar a interface View.OnClickListener para capturar os eventos de clique dos botões:
...
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
...
Neste caso, foi utilizado um listView para mostrar as opções de áudio:
...
ListView lista = findViewById(R.id.lista);
...
mp = new MediaPlayer();
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
if (mp.isPlaying())
mp.stop();
else {
//Verifica a posição do listView selecionada, chama o método para tocar áudio e passa a posição
switch (position) {
case 0:
tocarAudio(position);
break;
case 1:
tocarAudio(position);
break;
case 2:
tocarAudio(position);
break;
case 3:
tocarAudio(position);
break;
}
}
...
O método tocarAudio() recebe a posição do ítem do listView (pos) e executa o áudio de acordo com essa informação:
private void tocarAudio(int pos){
try{
mp.reset();
if(mp != null){
AssetFileDescriptor afd = null; //objeto para ler os dados de som
switch (pos){
case 0:
afd = getResources().openRawResourceFd(R.raw.meu_audio01);
break;
case 1:
afd = getResources().openRawResourceFd(R.raw.meu_audio02);
break;
case 2:
afd = getResources().openRawResourceFd(R.raw.meu_audio03);
break;
case 3:
afd = getResources().openRawResourceFd(R.raw.meu_audio04);
break;
}
if (afd != null) {
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepareAsync(); //transfere o objeto mp para o estado preparado
}
}
} catch (Exception e) {
Log.e("ERRO: ", e.getMessage());
}
}
O método onDestroy() libera recursos após a utilização do MediaPlayer:
public void onDestroy() {
if (mp != null) {
mp.release();
mp = null;
}
super.onDestroy(); //chama construtor da classe Activity (herdada)
}
Além do curso, você receberá mais 3 BÔNUS, o curso completo de JavaScript e também o Curso de React JS e Node JS onde vamos desenvolver aplicações e sistemas web do zero.
Garanta a sua vaga ainda hoje e aproveite a nossa super promoção!
CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS DETALHES:
Link do curso: https://go.hotmart.com/C82684520Q
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits