Captura
Proporciona acceso a audio, imagen y las capacidades de captura de vídeo del dispositivo.
Nota de privacidad importante: Recopilación y uso de imágenes, video o audio desde el micrófono o cámara del dispositivo plantea cuestiones de privacidad importante. Política de privacidad de su aplicación debe discutir cómo la aplicación utiliza dichos sensores y si los datos registrados se compartieron con cualquiera de las partes. Además, si el uso de la aplicación de la cámara o el micrófono no es aparente en la interfaz de usuario, debe proporcionar un aviso de just-in-time antes de su aplicación accediendo a la cámara o el micrófono (si el sistema operativo del dispositivo ya no hacerlo). Que el aviso debe proporcionar la misma información mencionada, además de obtener un permiso del usuario (por ejemplo, presentando opciones para Aceptar y No gracias). Tenga en cuenta que algunos mercados de aplicación pueden requerir su aplicación para proporcionar aviso just-in-time y obtener permiso del usuario antes de acceder a la cámara o el micrófono. Para obtener más información, por favor consulte a la guía de privacidad.
Objetos
- Captura
- CaptureAudioOptions
- CaptureImageOptions
- CaptureVideoOptions
- CaptureCallback
- CaptureErrorCB
- ConfigurationData
- MediaFile
- MediaFileData
Métodos
Ámbito de aplicación
The capture object is assigned to the navigator.device object, and therefore has global scope.
// The global capture object
var capture = navigator.device.capture;
Propiedades
supportedAudioModes: la grabación de formatos soportados por el dispositivo de audio. (ConfigurationData[])
supportedImageModes: la grabación de imagen tamaños y formatos soportados por el dispositivo. (ConfigurationData[])
supportedVideoModes: las resoluciones de grabación de vídeo y formatos soportados por el dispositivo. (ConfigurationData[])
Métodos
capture.captureAudio: Lanzar la aplicación de grabación de audio del dispositivo para grabar clips de audio.capture.captureImage: Lanzar la aplicación de la cámara del dispositivo para tomar fotos.capture.captureVideo: Iniciar aplicación de grabadora de vídeo del dispositivo para grabar videos.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- 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-capture.git
$ cordova plugin rm org.apache.cordova.core.media-capture
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/plugins.xml) < nombre de la función = "Capturar" >< nombre param = "android-paquete" value="org.apache.cordova.Capture" / >< / característica > (en app/AndroidManifest.xml) < usos-permiso android:name="android.permission.RECORD_AUDIO" / >< usos-permiso android:name="android.permission.WRITE_EXTERNAL_STORAGE" / > -
BlackBerry WebWorks
(in www/plugins.xml) < nombre de la función = "Capturar" >< nombre param = "blackberry-paquete" value="org.apache.cordova.capture.MediaCapture" / >< / característica > (en www/config.xml) < cuentan con id="blackberry.system" requiere = "true" versión = "1.0.0.0" / >< cuentan con id="blackberry.io.file" requiere = "true" version = "1.0.0.0" / > -
(en iOS
config.xml)< nombre de la función = "Capturar" >< nombre param = "ios-paquete" value = "CDVCapture" / >< / característica > -
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>
Algunas plataformas que soportan esta característica sin necesidad de ninguna configuración especial. Ver soporte de plataforma para tener una visión general.
capture.captureAudio
Iniciar la aplicación grabadora de audio y devolver información acerca de los archivos capturados clip de audio.
navigator.device.capture.captureAudio(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureAudioOptions options]
);
Descripción
Inicia una operación asincrónica para capturar grabaciones de audio mediante la aplicación de grabación de audio del dispositivo por defecto. La operación permite al usuario del dispositivo capturar varias grabaciones en una sola sesión.
La operación de captura termina cuando el usuario sale del audio grabación de aplicación, o el número máximo de registros especificado por CaptureAudioOptions.limit se alcanza. Si no limit se especifica el valor del parámetro, por defecto a uno (1), y la operación de captura termina después de que el usuario registra un solo clip de audio.
Cuando finaliza la operación de captura, el CaptureCallback se ejecuta con una gran variedad de MediaFile objetos describiendo cada uno capturado archivo del clip de audio. Si el usuario finaliza la operación antes de que sea capturado un clip de audio, el CaptureErrorCallback se ejecuta con un CaptureError de objeto, con el CaptureError.CAPTURE_NO_MEDIA_FILES código de error.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
Ejemplo rápido
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start audio capture
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});
Ejemplo completo
<!DOCTYPE html>
<html>
<head>
<title>Capture Audio</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// Called when capture operation is finished
//
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// Called if something bad happens.
//
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
// A button will call this function
//
function captureAudio() {
// Launch device audio recording application,
// allowing user to capture up to 2 audio clips
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 2});
}
// Upload files to server
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.code);
},
{ fileName: name });
}
</script>
</head>
<body>
<button onclick="captureAudio();">Capture Audio</button> <br>
</body>
</html>
BlackBerry WebWorks rarezas
- Cordova para BlackBerry WebWorks intenta lanzar la aplicación Grabadora de notas de voz , proporcionada por RIM, capturar grabaciones de audio. La aplicación recibe una
CaptureError.CAPTURE_NOT_SUPPORTEDcódigo de error si la aplicación no está instalada en el dispositivo.
iOS rarezas
- iOS no tiene una aplicación de grabación de audio predeterminada, así se proporciona una sencilla interfaz de usuario.
Windows Phone 7 y 8 rarezas
- Windows Phone 7 no tiene una aplicación de grabación de audio predeterminada, así se proporciona una sencilla interfaz de usuario.
CaptureAudioOptions
Encapsula las opciones de configuración de captura de audio.
Propiedades
límite: el número máximo de clips de audio del usuario del dispositivo puede grabar en una operación de captura individual. El valor debe ser mayor o igual a 1 (por defecto 1).
duración: la duración máxima de un clip de sonido audio, en segundos.
Ejemplo rápido
// limit capture operation to 3 media files, no longer than 10 seconds each
var options = { limit: 3, duration: 10 };
navigator.device.capture.captureAudio(captureSuccess, captureError, options);
Rarezas Android
- El
durationno se admite el parámetro. Longitudes de la grabación no puede ser limitada mediante programación.
BlackBerry WebWorks rarezas
- El
durationno se admite el parámetro. Longitudes de la grabación no puede ser limitada mediante programación.
iOS rarezas
- El
limitno se admite el parámetro, tan sólo una grabación puede crearse para cada invocación.
capture.captureImage
Iniciar una aplicación de cámara y devolver información acerca de los archivos de imagen capturada.
navigator.device.capture.captureImage(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions options]
);
Descripción
Inicia una operación asincrónica para capturar imágenes utilizando la aplicación de la cámara del dispositivo. La operación permite a los usuarios capturar más de una imagen en una sola sesión.
La operación de captura tampoco termina cuando el usuario cierra una aplicación de cámara, o el número máximo de registros especificado por CaptureAudioOptions.limit se alcanza. Si no limit se especifica el valor por defecto a uno (1) y termina la operación de captura después de que el usuario capta una sola imagen.
Cuando finaliza la operación de captura, invoca la CaptureCB "callback" con una gran variedad de MediaFile objetos que describen cada archivo de imagen capturada. Si el usuario finaliza la operación antes de capturar una imagen, la CaptureErrorCB devolución de llamada se ejecuta con un CaptureError objeto ofrece un CaptureError.CAPTURE_NO_MEDIA_FILES código de error.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
Windows Phone 7 rarezas
Invocando la aplicación de cámara nativa mientras el dispositivo está conectado vía Zune no funciona, y se ejecuta el callback de error.
Ejemplo rápido
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start image capture
navigator.device.capture.captureImage(captureSuccess, captureError, {limit:2});
Ejemplo completo
<!DOCTYPE html>
<html>
<head>
<title>Capture Image</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// Called when capture operation is finished
//
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// Called if something bad happens.
//
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
// A button will call this function
//
function captureImage() {
// Launch device camera application,
// allowing user to capture up to 2 images
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 2});
}
// Upload files to server
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.code);
},
{ fileName: name });
}
</script>
</head>
<body>
<button onclick="captureImage();">Capture Image</button> <br>
</body>
</html>
CaptureImageOptions
Encapsula las opciones de configuración de captura de imagen.
Propiedades
- límite: el número máximo de imágenes que el usuario puede capturar en una operación de captura individual. El valor debe ser mayor o igual a 1 (por defecto 1).
Ejemplo rápido
// limit capture operation to 3 images
var options = { limit: 3 };
navigator.device.capture.captureImage(captureSuccess, captureError, options);
iOS rarezas
- No se admite el parámetro límite , y sólo una imagen es tomada por invocación.
capture.captureVideo
Iniciar la aplicación grabadora de vídeo y devolver información acerca de archivos de vídeo capturado.
navigator.device.capture.captureVideo(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureVideoOptions options]
);
Descripción
Inicia una operación asincrónica para capturar video grabaciones mediante aplicación de grabación de vídeo del dispositivo. La operación permite al usuario capturar grabaciones de más de una en una sola sesión.
La operación de captura termina cuando el usuario sale de la aplicación de grabación de vídeo, o el número máximo de registros especificado por CaptureVideoOptions.limit se alcanza. Si no limit se especifica el valor del parámetro, por defecto a uno (1), y la operación de captura termina después de que el usuario registra un solo clip de video.
Cuando finaliza la operación de captura, es la CaptureCB devolución de llamada se ejecuta con una gran variedad de MediaFile objetos describiendo cada uno capturado archivo de videoclip. Si el usuario finaliza la operación antes de capturar un clip de vídeo, el CaptureErrorCB devolución de llamada se ejecuta con un CaptureError objeto ofrece un CaptureError.CAPTURE_NO_MEDIA_FILES código de error.
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
Ejemplo rápido
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start video capture
navigator.device.capture.captureVideo(captureSuccess, captureError, {limit:2});
Ejemplo completo
<!DOCTYPE html>
<html>
<head>
<title>Capture Video</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// Called when capture operation is finished
//
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// Called if something bad happens.
//
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
// A button will call this function
//
function captureVideo() {
// Launch device video recording application,
// allowing user to capture up to 2 video clips
navigator.device.capture.captureVideo(captureSuccess, captureError, {limit: 2});
}
// Upload files to server
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.code);
},
{ fileName: name });
}
</script>
</head>
<body>
<button onclick="captureVideo();">Capture Video</button> <br>
</body>
</html>
BlackBerry WebWorks rarezas
- Cordova para BlackBerry WebWorks intenta lanzar la aplicación Grabadora de Video , proporcionada por RIM, capturar grabaciones de vídeo. La aplicación recibe una
CaptureError.CAPTURE_NOT_SUPPORTEDcódigo de error si la aplicación no está instalada en el dispositivo.
CaptureVideoOptions
Encapsula las opciones de configuración de captura de vídeo.
Propiedades
límite: la cantidad máxima de usuario del dispositivo puede capturar en una operación sola captura clips de vídeo. El valor debe ser mayor o igual a 1 (por defecto 1).
duración: la duración máxima de un clip de vídeo, en segundos.
Ejemplo rápido
// limit capture operation to 3 video clips
var options = { limit: 3 };
navigator.device.capture.captureVideo(captureSuccess, captureError, options);
BlackBerry WebWorks rarezas
- No se admite el parámetro de duración , así que la longitud de las grabaciones no puede limitarse mediante programación.
iOS rarezas
- No se admite el parámetro límite . Sólo un vídeo se graba por invocación.
CaptureError
Encapsula el código de error resultante de una operación de captura de medios fallidos.
Propiedades
- código: uno de los códigos de error previamente definidos a continuación.
Constantes
CaptureError.CAPTURE_INTERNAL_ERR: La cámara o el micrófono no pudo capturar la imagen y el sonido.CaptureError.CAPTURE_APPLICATION_BUSY: La aplicación de captura de audio o cámara está cumpliendo otro pedido de captura.CaptureError.CAPTURE_INVALID_ARGUMENT: Uso no válido de la API (por ejemplo, el valor delimites menor que uno).CaptureError.CAPTURE_NO_MEDIA_FILES: El usuario sale de la aplicación de captura de audio o cámara antes de capturar cualquier cosa.CaptureError.CAPTURE_NOT_SUPPORTED: La operación de captura solicitada no es compatible.
CaptureCB
Se invoca en una operación de captura exitosa de los medios de comunicación.
function captureSuccess( MediaFile[] mediaFiles ) { ... };
Descripción
Esta función se ejecuta después de que finalice una operación de captura exitosa. En este punto que ha sido capturado un archivo multimedia y tampoco el usuario ha salido de la aplicación de captura de los medios de comunicación, o se ha alcanzado el límite de captura.
Cada MediaFile objeto describe un archivo multimedia capturado.
Ejemplo rápido
// capture callback
function captureSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
CaptureErrorCB
Se invoca si se produce un error durante una operación de captura de los medios de comunicación.
function captureError( CaptureError error ) { ... };
Descripción
Esta función se ejecuta si se produce un error al intentar lanzar un medio de captura de operación. Escenarios de fallas incluyen cuando la solicitud de captura está ocupada, una operación de captura ya está llevando a cabo o el usuario cancela la operación antes de que los archivos de los medios de comunicación son capturados.
Esta función se ejecuta con un CaptureError objeto que contiene un error apropiadocode.
Ejemplo rápido
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
ConfigurationData
Encapsula un conjunto de parámetros de captura de los medios de comunicación un dispositivo compatible.
Descripción
Describe los modos de captura de los medios de comunicación soportados por el dispositivo. Los datos de configuración incluyen el tipo MIME y captura de dimensiones para captura de vídeo o imagen.
Los tipos MIME deben adherirse a RFC2046. Ejemplos:
video/3gppvideo/quicktimeimage/jpegaudio/amraudio/wav
Propiedades
tipo: cadena codificada en el ASCII en minúsculas que representa el tipo de medios de comunicación. (DOMString)
altura: la altura de la imagen o vídeo en píxeles. El valor es cero para clips de sonido. (Número)
ancho: el ancho de la imagen o vídeo en píxeles. El valor es cero para clips de sonido. (Número)
Ejemplo rápido
// retrieve supported image modes
var imageModes = navigator.device.capture.supportedImageModes;
// Select mode that has the highest horizontal resolution
var width = 0;
var selectedmode;
for each (var mode in imageModes) {
if (mode.width > width) {
width = mode.width;
selectedmode = mode;
}
}
No compatible con cualquier plataforma. Todas las matrices de datos configuración están vacías.
MediaFile
Encapsula las propiedades de un archivo de captura de los medios de comunicación.
Propiedades
nombre: el nombre del archivo, sin información de la ruta. (DOMString)
fullPath: la ruta de acceso completa del archivo, incluyendo el nombre. (DOMString)
tipo: tipo mime del archivo (DOMString)
lastModifiedDate: la fecha y hora cuando el archivo se modificó por última vez. (Fecha)
tamaño: el tamaño del archivo, en bytes. (Número)
Métodos
- MediaFile.getFormatData: recupera la información del formato del archivo de los medios de comunicación.
MediaFile.getFormatData
El formato recupera información sobre el archivo de captura de los medios de comunicación.
mediaFile.getFormatData (MediaFileDataSuccessCB successCallback, [MediaFileDataErrorCB errorCallback]);
Descripción
Esta función asincrónica intentará recuperar la información de formato para el archivo de los medios de comunicación. Si exitoso, invoca la MediaFileDataSuccessCB devolución de llamada con un MediaFileData objeto. Si fracasa el intento, esta función invoca el MediaFileDataErrorCB "callback".
Plataformas soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- iOS
- Windows Phone 7 y 8
- Windows 8
BlackBerry WebWorks rarezas
No proporciona una API para obtener información sobre los archivos de medios, para que todos MediaFileData devolver objetos con valores predeterminados.
Rarezas Android
La API de acceso a la prensa archivo formato información es limitada, así que no todos MediaFileData se admiten las propiedades.
iOS rarezas
La API de acceso a la prensa archivo formato información es limitada, así que no todos MediaFileData se admiten las propiedades.
MediaFileData
Encapsula la información de formato de un archivo multimedia.
Propiedades
codecs: el actual formato de los contenidos de audio y video. (DOMString)
bitrate: el bitrate promedio del contenido. El valor es cero para las imágenes. (Número)
altura: la altura de la imagen o vídeo en píxeles. El valor es cero para los clips de audio. (Número)
ancho: el ancho de la imagen o vídeo en píxeles. El valor es cero para los clips de audio. (Número)
duración: la longitud del clip de vídeo o de sonido en segundos. El valor es cero para las imágenes. (Número)
BlackBerry WebWorks rarezas
Ninguna API proporciona información de formato para archivos de medios, así que el MediaFileData objeto devuelto por MediaFile.getFormatData cuenta con los siguientes valores predeterminados:
codecs: no soportado y devuelve
null.bitrate: no soportado y devuelve el valor cero.
altura: no soportado y devuelve el valor cero.
anchura: no soportado y devuelve el valor cero.
duración: no soportado y devuelve el valor cero.
Rarezas Android
Es compatible con los siguientes MediaFileData Propiedades:
codecs: no soportado y devuelve
null.bitrate: no soportado y devuelve el valor cero.
altura: apoyado: sólo los archivos de imagen y video.
anchura: admite: sólo los archivos de imagen y video.
duración: apoyado: archivos audio y video.
iOS rarezas
Es compatible con los siguientes MediaFileData Propiedades:
codecs: no soportado y devuelve
null.bitrate: compatible con iOS4 dispositivos de audio solamente. Devuelve cero para imágenes y vídeos.
altura: apoyado: sólo los archivos de imagen y video.
anchura: admite: sólo los archivos de imagen y video.
duración: apoyado: archivos audio y video.