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
- src: una URI hacia el contenido de audio. (DOMString)
- mediaSuccess: (Opcional) La función 'callback' que sera llamada después de que se halla completado la tarea de detener/reproducción/grabación. (Function)
- mediaError: (Opcional) Una función 'callback' que sera llamada si hay algún error. (Function)
- mediaStatus: (Opcional) Una función 'callback' que sera llamada para indicar cambios en el estado. (Function)
Métodos
- media.getCurrentPosition: Retorna la actual posición en el fichero de audio.
- media.getDuration: Retorna la duración del fichero de audio.
- media.play: Reproduce o pausa la reproducción del fichero de audio.
- media.pause: Pausa la reproducción del fichero de audio.
- media.release: Libera el audio y los recursos ocupados en el sistema.
- media.seekTo: Mueve la posición en el fichero de audio.
- media.startRecord: Empieza a grabar el fichero de audio.
- media.stopRecord: Para de grabar el fichero de audio.
- media.stop: Para de reproducir el fichero de audio.
Argumentos (Solo lectura)
-
_position: La posición actual en la reproducción (en segundos). No se actualiza durante la reproducción, necesitas llamar a
getCurrentPosition
para actualizar este atributo. - _duration: La duración del audio (en segundos).
Plataformas Soportadas
- Android
- iOS
media.getCurrentPosition
Retorna la posición actual en el fichero de audio.
media.getCurrentPosition(mediaSuccess, [mediaError]);
Argumentos
- mediaSuccess: La función 'callback' que sera llamada con la actual posición en segundos.
- mediaError: (Opcional) La función 'callback' que sera llamada con cualquier error que ocurra.
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
- Android
- iOS
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
- Android
- iOS
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
- Android
- iOS
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
- Android
- iOS
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
- Android
- iOS
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
- milliseconds: La nueva posición en el fichero de audio (en milisegundos).
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
- Android
- iOS
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
- Android
- iOS
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
- El fichero a grabar debe existir previamente y debería ser WAV. Puedes usar la API File para crear el fichero.
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
- Android
- iOS
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
- Android
- iOS
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
- code: Uno de los códigos de error predefinidos en la lista inferior.
- message: Mensaje de error describiendo el problema.
Constantes
MediaError.MEDIA_ERR_ABORTED
MediaError.MEDIA_ERR_NETWORK
MediaError.MEDIA_ERR_DECODE
MediaError.MEDIA_ERR_NONE_SUPPORTED
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
-
error: El error retornado por el dispositivo. (
MediaError
)