Android – Tocar Alarme com o MediaPlayer

Android Audio

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

Help DEV – Analista desenvolvedor Java / Android

http://helpdev.com.br/zarelli

3 thoughts on “Android – Tocar Alarme com o MediaPlayer

  1. Pingback: Think Different – Develop | Android – Tocar Alarme com o MediaPlayer

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>