Los medios de comunicación
El objeto de
Mediaproporciona la capacidad de grabar y reproducir archivos de audio en un dispositivo.
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
NOTA: La implementación actual no se adhiere a una especificación del W3C para la captura de los medios de comunicación y se proporciona únicamente para su comodidad. Una futura implementación se adherirá a la más reciente especificación W3C y puede desaprueban las API actuales.
Parámetros
fuente: un URI que contiene el contenido de audio. (DOMString)
mediaSuccess: (opcional) la devolución de llamada que se ejecuta después de un
Mediaobjeto ha completado el juego actual, registro o acción. (Función)mediaError: (opcional) la devolución de llamada que se ejecuta si se produce un error. (Función)
mediaStatus: (opcional) la devolución de llamada que se ejecuta para indicar cambios en el estado. (Función)
Constantes
Las siguientes constantes son reportadas como el único parámetro para la devolución de llamada mediaStatus:
-
Media.MEDIA_NONE= 0; -
Media.MEDIA_STARTING= 1; -
Media.MEDIA_RUNNING= 2; -
Media.MEDIA_PAUSED= 3; -
Media.MEDIA_STOPPED= 4;
Métodos
media.getCurrentPosition: Devuelve la posición actual dentro de un archivo de audio.media.getDuration: Devuelve la duración de un archivo de audio.media.play: Iniciar o reanudar la reproducción de un archivo de audio.media.pause: Pausar la reproducción de un archivo de audio.media.release: Libera recursos de audio del sistema operativo subyacente.media.seekTo: Mueve la posición dentro del archivo de audio.media.setVolume: Ajusta el volumen para la reproducción de audio.media.startRecord: Iniciar la grabación de un archivo de audio.media.stopRecord: Deja de grabar un archivo de audio.media.stop: Para reproducir un archivo de audio.
Parámetros adicionales ReadOnly
-
posición: la posición dentro de la reproducción de audio, en segundos.
- No actualizada automáticamente durante la reproducción; Llame a
getCurrentPositionpara actualizar.
- No actualizada automáticamente durante la reproducción; Llame a
duración: la duración de los medios de comunicación, en segundos.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7.5
- Tizen
- Windows 8
Acceso a la función
A partir de la versión 3.0, Cordova implementa nivel de dispositivo APIs como plugins. Uso de la CLI plugin comando, que se describe en la interfaz de línea de comandos, para añadir o eliminar esta característica para un proyecto:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git
Estos comandos se aplican a todas las plataformas específicas, sino modificar las opciones de configuración específicas de la plataforma que se describen a continuación:
-
Android
(in app/res/xml/config.xml) <feature name="Media"> <param name="android-package" value="org.apache.cordova.AudioHandler" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> -
BlackBerry WebWorks
(in www/plugins.xml) <feature name="Capture"> <param name="blackberry-package" value="org.apache.cordova.media.MediaCapture" /> </feature> -
(en iOS
config.xml)<feature name="Media"> <param name="ios-package" value="CDVSound" /> </feature> -
Windows Phone (en
Properties/WPAppManifest.xml)<Capabilities> <Capability Name="ID_CAP_MEDIALIB" /> <Capability Name="ID_CAP_MICROPHONE" /> <Capability Name="ID_HW_FRONTCAMERA" /> <Capability Name="ID_CAP_ISV_CAMERA" /> <Capability Name="ID_CAP_CAMERA" /> </Capabilities>Referencia: manifiesto de aplicación para Windows Phone
Algunas plataformas que soportan esta característica sin necesidad de ninguna configuración especial. Ver soporte de plataforma para tener una visión general.
Windows Phone rarezas
Archivo sólo multimedia puede reproducir en un momento.
Hay restricciones estrictas sobre cómo interactúa la aplicación con otros medios. Consulte la documentación de Microsoft para obtener más detalles.
media.getCurrentPosition
Devuelve la posición actual dentro de un archivo de audio.
media.getCurrentPosition(mediaSuccess, [mediaError]);
Parámetros
mediaSuccess: la devolución de llamada que se pasa a la posición actual en segundos.
mediaError: (opcional) la devolución de llamada que se ejecutarán si se produce un error.
Descripción
Una función asincrónica que devuelve la posición actual del archivo de audio subyacente de un objeto Media. También actualiza el parámetro de position del objeto de los Media.
Plataformas soportadas
Android
BlackBerry WebWorks (OS 5.0 y superiores)
iOS
Windows Phone 7 y 8
Tizen
Windows 8
Ejemplo rápido
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
// Update media position every second
var mediaTimer = setInterval(function () {
// get media position
my_media.getCurrentPosition(
// success callback
function (position) {
if (position > -1) {
console.log((position) + " sec");
}
},
// error callback
function (e) {
console.log("Error getting pos=" + e);
}
);
}, 1000);
Ejemplo completo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.getDuration
Devuelve la duración de un archivo de audio.
media.getDuration();
Descripción
El método media.getDuration se ejecuta sincrónicamente, devolviendo la duración del archivo de audio en segundos, si se conocen. Si se desconoce la duración, devuelve un valor de -1.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
// Get duration
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) + " sec";
}
}, 100);
Ejemplo completo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.pause
Pausas jugando un archivo de audio.
media.pause();
Descripción
El método media.pause se ejecuta sincrónicamente y hace una pausa de reproducir un archivo de audio.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Play audio
//
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function () { console.log("playAudio():Audio Success"); },
// error callback
function (err) { console.log("playAudio():Audio Error: " + err); }
);
// Play audio
my_media.play();
// Pause after 10 seconds
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>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.play
Inicia o reanuda la reproducción de un archivo de audio.
media.play();
Descripción
El método media.play se ejecuta sincrónicamente e inicia o reanuda la reproducción de un archivo de audio.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Play audio
//
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function () {
console.log("playAudio():Audio Success");
},
// error callback
function (err) {
console.log("playAudio():Audio Error: " + err);
}
);
// Play 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>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
if (my_media == null) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
} // else play current audio
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
BlackBerry WebWorks rarezas
- Dispositivos blackBerry apoyan un número limitado de canales de audio simultáneos. Dispositivos CDMA sólo admiten un solo canal de audio. Otros dispositivos admiten hasta dos canales simultáneos. Un intento de reproducir archivos de audio más que la cantidad de apoyo se traduce en reproducción anterior ser detenida.
iOS rarezas
-
numberOfLoops: pasar esta opción al método
playpara especificar el número de veces que desea que los medios de archivo para jugar, por ejemplo:var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ numberOfLoops: 2 }) -
playAudioWhenScreenIsLocked: pasar en esta opción el método
playpara especificar si desea permitir la reproducción cuando la pantalla está bloqueada. Si se omite establecido entrue(el valor predeterminado), el estado del botón mute hardware, por ejemplo:var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ playAudioWhenScreenIsLocked : false }) -
orden de búsqueda de archivos: cuando se proporciona sólo un nombre de archivo o ruta simple, iOS busca en el directorio
wwwpara el archivo, luego en el directorio de la aplicacióndocuments/tmp:var myMedia = new Media("audio/beer.mp3") myMedia.play() // first looks for file in www/audio/beer.mp3 then in <application>/documents/tmp/audio/beer.mp3
media.release
Libera los recursos de audio del sistema operativo subyacente.
media.release();
Descripción
El método media.release se ejecuta sincrónicamente, liberando recursos de audio del sistema operativo subyacente. Esto es particularmente importante para Android, ya que hay una cantidad finita de OpenCore instancias para la reproducción multimedia. Las aplicaciones deben llamar a la función de release para cualquier recurso Media que ya no es necesario.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Audio player
//
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>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.seekTo
Establece la posición actual dentro de un archivo de audio.
media.seekTo(milliseconds);
Parámetros
- milliseconds: la posición para ajustar la posición de reproducción en el audio, en milisegundos.
Descripción
El media.seekTo se ejecuta asincrónicamente, actualización de la posición actual de reproducción dentro de un archivo de audio que hace referenciada a un objeto Media. También actualiza el parámetro de position del objeto de los Media de comunicación.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 6.0 y superior)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Audio player
//
var my_media = new Media(src, onSuccess, onError);
my_media.play();
// SeekTo to 10 seconds after 5 seconds
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>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update media position every second
mediaTimer = setInterval(function() {
// get media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition(position + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
}
);
}, 1000);
// SeekTo to 10 seconds after 5 seconds
setTimeout(function() {
my_media.seekTo(10000);
}, 5000);
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
BlackBerry WebWorks rarezas
- No compatible con dispositivos BlackBerry OS 5.
media.setVolume
Ajustar el volumen para un archivo de audio.
media.setVolume(volume);
Parámetros
- volume: el volumen para la reproducción. El valor debe estar dentro del rango de 0.0 a 1.0.
Descripción
La función media.setVolume es una función asincrónica que establece el volumen durante la reproducción de audio.
Plataformas soportadas
- Android
- iOS
Ejemplo rápido
// Play audio
//
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function() {
console.log("playAudio():Audio Success");
},
// error callback
function(err) {
console.log("playAudio():Audio Error: "+err);
});
// Play audio
my_media.play();
// Mute volume after 2 seconds
setTimeout(function() {
my_media.setVolume('0.0');
}, 2000);
// Set volume to 1.0 after 5 seconds
setTimeout(function() {
my_media.setVolume('1.0');
}, 5000);
}
Ejemplo completo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Set audio volume
//
function setVolume(volume) {
if (my_media) {
my_media.setVolume(volume);
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="setVolume('0.0');">Mute Audio</a>
<a href="#" class="btn large" onclick="setVolume('1.0');">Unmute Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.startRecord
Empieza a grabar un archivo de audio.
media.startRecord();
Descripción
El método media.startRecord se ejecuta sincrónicamente, comienza la grabación de un archivo de audio.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
Ejemplo rápido
// Record audio
//
function recordAudio() {
var src = "myrecording.mp3";
var mediaRec = new Media(src,
// success callback
function() {
console.log("recordAudio():Audio Success");
},
// error callback
function(err) {
console.log("recordAudio():Audio Error: "+ err.code);
});
// Record audio
mediaRec.startRecord();
}
Ejemplo completo
<!DOCTYPE html>
<html>
<head>
<title>Device Properties Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Record audio
//
function recordAudio() {
var src = "myrecording.amr";
var mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
var recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
setAudioPosition(recTime + " sec");
if (recTime >= 10) {
clearInterval(recInterval);
mediaRec.stopRecord();
}
}, 1000);
}
// device APIs are available
//
function onDeviceReady() {
recordAudio();
}
// onSuccess Callback
//
function onSuccess() {
console.log("recordAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
function setAudioPosition(position) {
document.getElementById('audio_position').innerHTML = position;
}
</script>
</head>
<body>
<p id="media">Recording audio...</p>
<p id="audio_position"></p>
</body>
</html>
Rarezas Android
- Dispositivos Android grabación audio en formato Adaptive Multi-rate. El archivo especificado debe terminar con una extensión de .amr.
BlackBerry WebWorks rarezas
- Dispositivos blackBerry grabación audio en formato Adaptive Multi-rate. El archivo especificado debe finalizar con una extensión de .amr.
iOS rarezas
iOS sólo registros a archivos de tipo .wav y devuelve un error si el nombre del archivo extensión es no es correcto.
Si no se proporciona una ruta completa, la grabación se coloca en la aplicación
documents/tmpDirectorio. Esto puede accederse a través de laFileAPI utilizandoLocalFileSystem.TEMPORARY. Ya debe existir ningún subdirectorio especificado en un tiempo récord.-
Archivos pueden ser grabados y jugó de nuevo usando los documentos URI:
var myMedia = new Media("documents://beer.mp3")
Rarezas Tizen
- No compatible con dispositivos Tizen.
media.stop
Deja de jugar a un archivo de audio.
media.stop();
Descripción
El método media.stop se ejecuta sincrónicamente para detener la reproducción de un archivo de audio.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Tizen
- Windows 8
Ejemplo rápido
// Play audio
//
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function() {
console.log("playAudio():Audio Success");
},
// error callback
function(err) {
console.log("playAudio():Audio Error: "+err);
}
);
// Play audio
my_media.play();
// Pause after 10 seconds
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>Media Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
}
// Audio player
//
var my_media = null;
var mediaTimer = null;
// Play audio
//
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
// Pause audio
//
function pauseAudio() {
if (my_media) {
my_media.pause();
}
}
// Stop audio
//
function stopAudio() {
if (my_media) {
my_media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
// onSuccess Callback
//
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
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');">Play Audio</a>
<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
<p id="audio_position"></p>
</body>
</html>
media.stopRecord
Detiene la grabación de un archivo de audio.
media.stopRecord();
Descripción
El método media.stopRecord se ejecuta sincrónicamente, detener la grabación de un archivo de audio.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
Ejemplo rápido
// Record audio
//
function recordAudio() {
var src = "myrecording.mp3";
var mediaRec = new Media(src,
// success callback
function() {
console.log("recordAudio():Audio Success");
},
// error callback
function(err) {
console.log("recordAudio():Audio Error: "+ err.code);
}
);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 seconds
setTimeout(function() {
mediaRec.stopRecord();
}, 10000);
}
Ejemplo completo
<!DOCTYPE html>
<html>
<head>
<title>Device Properties Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Record audio
//
function recordAudio() {
var src = "myrecording.mp3";
var mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
var recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
setAudioPosition(recTime + " sec");
if (recTime >= 10) {
clearInterval(recInterval);
mediaRec.stopRecord();
}
}, 1000);
}
// device APIs are available
//
function onDeviceReady() {
recordAudio();
}
// onSuccess Callback
//
function onSuccess() {
console.log("recordAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
// Set audio position
//
function setAudioPosition(position) {
document.getElementById('audio_position').innerHTML = position;
}
</script>
</head>
<body>
<p id="media">Recording audio...</p>
<p id="audio_position"></p>
</body>
</html>
Rarezas Tizen
- No compatible con dispositivos Tizen.
MediaError
A MediaError objeto es devuelto a la mediaError función de devolución de llamada cuando se produce un error.
Propiedades
código: uno de los códigos de error predefinido enumerados a continuación.
mensaje: un mensaje de error que describe los detalles del error.
Constantes
MediaError.MEDIA_ERR_ABORTEDMediaError.MEDIA_ERR_NETWORKMediaError.MEDIA_ERR_DECODEMediaError.MEDIA_ERR_NONE_SUPPORTED
Descripción
El MediaError objeto se pasa a un mediaError función de devolución de llamada cuando se produce un error.
mediaError
Una función de devolución de llamada especificado por el usuario que se ejecuta cuando hay un error en las funciones de los medios de comunicación.
function(error) {
// Handle the error
}
Parámetros
- error: el error devuelto por el dispositivo. (MediaError)