Repository: cordova-plugin-media-capture Updated Branches: refs/heads/dev 007630da4 -> bd6af4542
CB-6016 [BlackBerry10] Add audio capture capability Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/bd6af454 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/bd6af454 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/bd6af454 Branch: refs/heads/dev Commit: bd6af454227a9c791acfdb70ea592a54c888ef98 Parents: 007630d Author: Bryan Higgins <[email protected]> Authored: Wed Mar 12 11:45:23 2014 -0400 Committer: Bryan Higgins <[email protected]> Committed: Thu Mar 13 09:08:54 2014 -0400 ---------------------------------------------------------------------- doc/index.md | 6 +----- src/blackberry10/index.js | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/bd6af454/doc/index.md ---------------------------------------------------------------------- diff --git a/doc/index.md b/doc/index.md index 8a29718..ed682f3 100644 --- a/doc/index.md +++ b/doc/index.md @@ -131,11 +131,6 @@ code. // start audio capture navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2}); - -### BlackBerry 10 Quirks - -- Cordova for BlackBerry 10 attempts to launch the __Voice Notes Recorder__ application, provided by RIM, to capture audio recordings. The app receives a `CaptureError.CAPTURE_NOT_SUPPORTED` error code if the application is not installed on the device. - ### iOS Quirks - iOS does not have a default audio recording application, so a simple user interface is provided. @@ -172,6 +167,7 @@ code. ### BlackBerry 10 Quirks - The `duration` parameter is not supported. Recording lengths can't be limited programmatically. +- The `limit` parameter is not supported, so only one recording can be created for each invocation. ### iOS Quirks http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/bd6af454/src/blackberry10/index.js ---------------------------------------------------------------------- diff --git a/src/blackberry10/index.js b/src/blackberry10/index.js index d7c5627..ea78137 100644 --- a/src/blackberry10/index.js +++ b/src/blackberry10/index.js @@ -45,6 +45,14 @@ function capture(action, options, result, webview) { }, fail); }, fail); }, + onAudioCaptured = function (response) { + window.qnx.webplatform.getApplication().invocation.removeEventListener("childCardClosed", onAudioCaptured); + if (response.data && response.data !== "") { + onCaptured(response.data); + } else { + result.callbackError({code: NO_MEDIA_FILES_ERROR_CODE }); + } + } onCancelled = function () { result.callbackError({code: NO_MEDIA_FILES_ERROR_CODE }); }, @@ -56,6 +64,20 @@ function capture(action, options, result, webview) { if (limit < 0) { result.error({code: INVALID_ARGUMENT_ERROR_CODE}); + } else if (action === "audio") { + window.qnx.webplatform.getApplication().invocation.invoke( + { + target: "sys.apps.audiorecorder", + action: "bb.action.CAPTURE" + }, + function (error) { + if (error) { + console.log(error); + } else { + window.qnx.webplatform.getApplication().invocation.addEventListener("childCardClosed", onAudioCaptured); + } + }); + result.noResult(true); } else { window.qnx.webplatform.getApplication().cards.camera.open(action, onCaptured, onCancelled, onInvoked); result.noResult(true); @@ -89,6 +111,6 @@ module.exports = { }, captureAudio: function (win, fail, args, env) { var result = new PluginResult(args, env); - result.error({code: NOT_SUPPORTED_ERROR_CODE}); + capture("audio", {}, result, env.webview); } };
