Media

Media

El objeto Media te permite grabar y reproducir ficheros de audio en un dispositivo.

var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);

Nota: La implementación actual no se adhiere a las especificaciones de la W3C, en una futura implementación se seguirán las ultimas especificaciones de la W3C, y esta API se volverá obsoleta.

Argumentos

Métodos

Argumentos (Solo lectura)

Plataformas Soportadas


media.getCurrentPosition

Retorna la posición actual en el fichero de audio.

media.getCurrentPosition(mediaSuccess, [mediaError]);

Argumentos

Descripción

La función media.getCurrentPosition es una función asíncrona que retorna la posición actual en la reproducción del fichero. Esta función también actualiza el atributo position del objeto Media.

Plataformas Soportadas

Ejemplo Rápido

    // Un reproductor de audio
    //
    var my_media = new Media(src, onSuccess, onError);

    // Actualiza la posición cada segundo
    var mediaTimer = setInterval(function() {
        // Obtiene la posición
        my_media.getCurrentPosition(
            // Función 'callback' satisfactoria
            function(position) {
                if (position > -1) {
                    console.log((position) + " seg");
                }
            },
            // Función 'callback' de error
            function(e) {
                console.log("Error obteniendo posición=" + e);
            }
        );
    }, 1000);

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Reproduce el audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // Obtiene la posición actual
                    my_media.getCurrentPosition(
                        // Función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg");
                            }
                        },
                        // Función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio correcto");
        }

        // Función 'callback' onError
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.getDuration

Retorna la duración de un fichero de audio.

media.getDuration();

Descripción

La función media.getDuration es una función síncrona que retorna la duración del fichero de audio (si se conociera, y en segundos). Si la duración fuera desconocida, retornara -1.

Plataformas Soportadas

Ejemplo Sencillo

    // Un reproductor de audio
    //
    var my_media = new Media(src, onSuccess, onError);

    // Obtiene la duración
    var counter = 0;
    var timerDur = setInterval(function() {
        counter = counter + 100;
        if (counter > 2000) {
            clearInterval(timerDur);
        }
        var dur = my_media.getDuration();
        if (dur > 0) {
            clearInterval(timerDur);
            document.getElementById('audio_duration').innerHTML = (dur) + " seg";
        }
   }, 100);

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Un reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Reproduce el audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // Obtiene la posición actual
                    my_media.getCurrentPosition(
                        // Función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg.");
                            }
                        },
                        // Función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio correcto");
        }

        // Función 'callback' onError
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.pause

Pausa la reproducción de un fichero de audio.

media.pause();

Descripción

La función media.pause es una función síncrona que pausa la reproducción de un fichero de audio.

Plataformas Soportadas

Ejemplo Sencillo

// Reproduce el audio
//
function playAudio(url) {
    // Reproduce el fichero de audio de la URL
    var my_media = new Media(url,
        // Función 'callback' satisfactoria
        function() {
            console.log("playAudio():Audio correcto");
        },
        // Función 'callback' de error 
        function(err) {
            console.log("playAudio():Audio Error: "+err);
    });

    // Reproduce el audio
    my_media.play();

    // Pausar después de 10 segundos
    setTimeout(function() {
        media.pause();
    }, 10000);        
}

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Un reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Play audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // Obtiene la posición actual
                    my_media.getCurrentPosition(
                        // Función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg.");
                            }
                        },
                        // Función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio Correcto");
        }

        // Función 'callback' onError
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.play

Reproduce o pausa la reproducción de un fichero de audio.

media.play();

Descripción

La función media.play es una función síncrona que reproduce o pausa un archivo de audio.

Plataformas Soportadas

Ejemplo Rápido

// Reproduce el audio
//
function playAudio(url) {
    // Reproduce el fichero de audio de la URL
    var my_media = new Media(url,
        // Función 'callback' satisfactoria
        function() {
            console.log("playAudio():Audio correcto");
        },
        // Función 'callback' de error 
        function(err) {
            console.log("playAudio():Audio Error: "+err);
    });

    // Reproduce el audio
    my_media.play();
}

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Un Reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            if (my_media == null) {
                // Crea un objeto `Media` desde el argumento
                my_media = new Media(src, onSuccess, onError);
            } // Si no, reproduce el actual
            // Play audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // Obtiene la posición actual
                    my_media.getCurrentPosition(
                        // Función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg");
                            }
                        },
                        // Función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio Correcto");
        }

        // Función 'callback' onError
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.release

Libera el audio y los recursos ocupados en el sistema.

media.release();

Descripción

La función media.release es una función síncrona que libera los recursos del sistema ocupados por el fichero de audio. Esta función es particularmente importante en Android donde solo se dispone de una cantidad limitada de instancias 'OpenCore' para la reproducción. Se debe usar el método media.release cuando no se necesite el recurso multimedia.

Plataformas Soportadas

Ejemplo Sencillo

    // Un reproductor de audio
    //
    var my_media = new Media(src, onSuccess, onError);

    my_media.play();
    my_media.stop();
    my_media.release();

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espera a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Un reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Reproduce el audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // obtiene la posición actual
                    my_media.getCurrentPosition(
                        // Función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg");
                            }
                        },
                        // Función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio Correcto");
        }

        // Función 'callback' onError 
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.seekTo

Fija la posición actual en el fichero de audio.

media.seekTo(milisegundos);

Argumentos

Descripción

La función media.seekTo es una función síncrona que actualiza la posición actual de reproducción del objeto `Media, este método también actualiza su atributo position.

Plataformas Soportadas

Ejemplo Rápido

    // Reproductor de audio
    //
    var my_media = new Media(src, onSuccess, onError);
    my_media.play();
    // Pasados 5 segundos, cambia la posición hacia el segundo numero 10
    setTimeout(function() {
        my_media.seekTo(10000);
    }, 5000);

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Un reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Reproduce el audio
            my_media.play();
            // Actualiza la posición cada segundo
            mediaTimer = setInterval(function() {
                // Obtiene la posición actual
                my_media.getCurrentPosition(
                    // Función 'callback' satisfactoria
                    function(position) {
                        if (position > -1) {
                            setAudioPosition(position + " seg");
                        }
                    },
                    // error callback
                    function(e) {
                        console.log("Error obteniendo posición=" + e);
                    }
                );
            }, 1000);
            // Pasados 5 segundos, cambia la posición hacia el segundo numero 10
            setTimeout(function() {
                my_media.seekTo(10000);
            }, 5000);
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // Función 'callback' satisfactoria
        //
        function onSuccess() {
            console.log("playAudio():Audio correcto");
        }

        // Función 'callback' de error
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.startRecord

Inicia la grabación de un fichero de audio.

media.startRecord();

Descripción

La función media.startRecord es una función síncrona que inicia la grabación de un fichero de audio.

Plataformas Soportadas

Ejemplo Rápido

// Graba audio
// 
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // Función 'callback' satisfactoria
        function() {
            console.log("recordAudio():Audio correcto");
        },

        // Función 'callback' de error
        function(err) {
            console.log("recordAudio():Audio Error: "+ err.code);
        });

    // Graba audio
    mediaRec.startRecord();
}

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Media</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Espere a que PhoneGap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Graba audio
    // 
    function recordAudio() {
        var src = "myrecording.mp3";
        var mediaRec = new Media(src, onSuccess, onError);

        // Graba audio
        mediaRec.startRecord();

        // Parar de grabar tras 10 segundos
        var recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1;
            setAudioPosition(recTime + " seg");
            if (recTime >= 10) {
                clearInterval(recInterval);
                mediaRec.stopRecord();
            }
        }, 1000);
    }

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        recordAudio();
    }

    // Función 'callback' onSuccess
    //
    function onSuccess() {
        console.log("recordAudio():Audio correcto");
    }

    // Función 'callback' onError
    //
    function onError(error) {
        alert('código: '  + error.code    + '\n' + 
              'mensaje: ' + error.message + '\n');
    }

    // Muestra la posición
    // 
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <p id="media">Grabando audio...</p>
    <p id="audio_position"></p>
  </body>
</html>

Peculiaridades iOS


media.stop

Detiene la reproducción de un fichero de audio.

media.stop();

Descripción

La función media.stop es una función síncrona que detiene la reproducción de un fichero de audio.

Plataformas Soportadas

Ejemplo Rápido

// Reproduce el audio
//
function playAudio(url) {
    // Reproduce el fichero de audio de la URL
    var my_media = new Media(url,
        // función 'callback' satisfactorio
        function() {
            console.log("playAudio():Audio correcto");
        },
        // función 'callback' de error
        function(err) {
            console.log("playAudio():Error de audio: "+err);
    });

    // Reproduce el audio
    my_media.play();

    // Pausar tras 10 segundos
    setTimeout(function() {
        my_media.stop();
    }, 10000);        
}

Ejemplo Completo

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                          "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Ejemplo de Media</title>

        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8">

        // Espere a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta lista
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }

        // Reproductor de audio
        //
        var my_media = null;
        var mediaTimer = null;

        // Reproduce el audio
        //
        function playAudio(src) {
            // Crea un objeto `Media` desde el argumento
            my_media = new Media(src, onSuccess, onError);

            // Reproduce el audio
            my_media.play();

            // Actualiza la posición cada segundo
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // obtiene la posición actual
                    my_media.getCurrentPosition(
                        // función 'callback' satisfactoria
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " seg");
                            }
                        },
                        // función 'callback' de error
                        function(e) {
                            console.log("Error obteniendo posición=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }

        // Pausa la reproducción
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }

        // Detiene la reproducción
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }

        // función 'callback' onSuccess
        //
        function onSuccess() {
            console.log("playAudio():Audio correcto");
        }

        // función 'callback' onError
        //
        function onError(error) {
            alert('código: '  + error.code    + '\n' + 
                  'mensaje: ' + error.message + '\n');
        }

        // Muestra la posición
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }

        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Reproducir</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pausa</a>
        <a href="#" class="btn large" onclick="stopAudio();">Detener</a>
        <p id="audio_position"></p>
      </body>
    </html>

media.stopRecord

Detiene la grabación de un fichero de audio.

media.stopRecord();

Descripción

La función media.stopRecord es una función síncrona que detiene la grabación de un fichero de audio.

Plataformas Soportadas

Ejemplo Rápido

// Graba audio
// 
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // función 'callback' satisfactoria
        function() {
            console.log("recordAudio():Audio correcto");
        },

        // función 'callback' de error
        function(err) {
            console.log("recordAudio():Error de audio: "+ err.code);
        });

    // Graba audio
    mediaRec.startRecord();

    // Detiene la grabación tras 10 segundos
    setTimeout(function() {
        mediaRec.stopRecord();
    }, 10000);
}

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Media</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Espera a que PhoneGap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Graba audio
    // 
    function recordAudio() {
        var src = "myrecording.mp3";
        var mediaRec = new Media(src, onSuccess, onError);

        // Graba audio
        mediaRec.startRecord();

        // Detiene la grabación tras 10 segundos
        var recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1;
            setAudioPosition(recTime + " seg");
            if (recTime >= 10) {
                clearInterval(recInterval);
                mediaRec.stopRecord();
            }
        }, 1000);
    }

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        recordAudio();
    }

    // función 'callback' onSuccess
    //
    function onSuccess() {
        console.log("recordAudio():Audio correcto");
    }

    // función 'callback' onError
    //
    function onError(error) {
        alert('código: '  + error.code    + '\n' + 
              'mensaje: ' + error.message + '\n');
    }

    // Muestra la posición
    // 
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <p id="media">Grabando audio...</p>
    <p id="audio_position"></p>
  </body>
</html>

MediaError

Cuando ocurra un error, un objeto MediaError se le pasara a la función 'callback' mediaError.

Atributos

Constantes

Descripción

Cuando ocurra un error, un objeto MediaError se le pasara a la función 'callback' mediaError.


mediaError

Una función 'callback' que el usuario especificara y se llamara cuando ocurra un error en las funciones de media.

function(error) {
    // Maneja el error
}

Argumentos