Inicia la aplicación del dispositivo de grabación de audio y retorna información sobre el fichero capturado.
navigator.device.capture.captureAudio( CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureAudioOptions options] );
Este método inicia una operación asíncrona de captura de audio usando la aplicación por defecto para la grabación de audio. Esta operación permite al usuario realizar varias grabaciones de una misma vez.
La operación termina cuando el usuario sale de la aplicación de grabación, o cuando se alcanza el numero máximo de grabaciones especificadas por la opción limit del argumento CaptureAudioOptions
. Si no se especifica un valor para limit, por defecto sera 1, y la aplicación se cerrara tras grabar un solo clip.
Cuando termina la captura, se llamara a la función ‘callback’ CaptureCB con el array de objetos MediaFile. Si la aplicación de grabación es cerrada por el usuario sin grabar nada, se llamara a la función CaptureErrorCB
pasándole un objeto CaptureError
con el código CAPTURE_NO_MEDIA_FILES
.
// función 'callback' satisfactoria var captureSuccess = function(mediaFiles) { var i, path, len; for (i = 0, len = mediaFiles.length; i < len; i += 1) { path = mediaFiles[i].fullPath; // hacer algo interesante con el fichero... } }; // función 'callback' de error var captureError = function(error) { navigator.notification.alert('Código de error: ' + error.code, null, 'Error de captura'); }; // inicia la captura de audio navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});
<!DOCTYPE html> <html> <head> <title>Ejemplo de Capture</title> <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascript" charset="utf-8" src="json2.js"></script> <script type="text/javascript" charset="utf-8"> // Llamado cuando termine la operación de captura // function captureSuccess(mediaFiles) { var i, len; for (i = 0, len = mediaFiles.length; i < len; i += 1) { uploadFile(mediaFiles[i]); } } // Llamado cuando ocurra algo mal. // function captureError(error) { var msg = 'Ocurrió un error durante la captura: ' + error.code; navigator.notification.alert(msg, null, 'Uh oh!'); } // Un botón llamara a esta función // function captureAudio() { // Inicia la aplicación del dispositivo de captura de audio // permitiendo al usuario capturar hasta 2 clips de audio. navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 2}); } // Subir ficheros al servidor 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('Subida correcta: ' + result.responseCode); console.log(result.bytesSent + ' bytes enviados'); }, function(error) { console.log('Error subiendo el fichero ' + path + ': ' + error.code); }, { fileName: name }); } </script> </head> <body> <button onclick="captureAudio();">Capturar audio</button> <br> </body> </html>
CAPTURE_NOT_SUPPORTED
.