MediaPlayer
A classe MediaPlayer pode ser usada para controlar a reprodução de áudio/vídeo ou stream.
Diagrama de Estado
O diagrama a seguir mostra o ciclo de vida e os estados de um objeto MediaPlayer impulsionado pelas operações de controle de reprodução. As ovais representam os estados de um objeto MediaPlayer podem residir dentro. Os arcos representam as operações de controlo de reprodução que conduzem a transição de estado do objeto. Existem dois tipos de arcos. Os arcos com uma ponta de seta única são chamadas de métodos síncronos, enquanto que aqueles com uma ponta de seta dupla representa chamadas de método assíncrono.
(Texto traduzido pelo translate.google.com referencia: http://developer.android.com/reference/android/media/MediaPlayer.html)
Essa é uma pequena introdução ao MediaPlayer. Caso queiram se aprofundar mais sobre o assunto verifiquem no link acima.
Abaixo segue um pequeno codigo de como reproduzir um “Alarme” com recursos do sistema.
try { /** * Define o tipo de alarme. Esse tipo de alarme que sera reproduzido * é o mesmo que você definiu para seu sistema. * No caso abaixo ele faz uma verificação para ver se tem som definido * para alarme, notificação ou toque. Coloquei nesta ordem, porque * no meu caso eu quero que toque o alarme mas se não tiver definido * vai tentar pegar os proximos. */ Uri alert; alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); if (alert == null) { alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); if (alert == null) { alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); } } //cria o media player MediaPlayer mMediaPlayer = new MediaPlayer(); //define o tipo de som mMediaPlayer.setDataSource(this, alert); //Pega o serviço de audio do sistema para definir o volume. AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); //Abaixo defini o stream de audio do alarme. Essa stream de audio é //o volume que irá tocar. O volume é definido nas configurações de seu //sistema. audioManager.setStreamVolume(AudioManager.STREAM_ALARM, 100, AudioManager.FLAG_ALLOW_RINGER_MODES); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); //caso você queira que o audio se repita define com loop. mMediaPlayer.setLooping(true); //prepara o audio e inicia a reprodução. mMediaPlayer.prepare(); mMediaPlayer.start(); } catch (Exception e) { e.printStackTrace(); }
Com esse exemplo podemos fazer varias adaptações ao nosso gosto. Basta estudar um pouco a classe MediaPlayer.
FONTE: http://developer.android.com/reference/android/media/MediaPlayer.html
E para parar o som? Alguma dica!! Obrigado
Você tem métodos no mMediaPlayer de stop. Mais se você teria que estar rodando em thread o som, para conseguir para na hora que quiser