2

我已成功安装插件 org.apache.cordova.core.media-capture。

我在我的项目中所做的

phonegap 本地插件添加https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git

navigator.device.capture.captureVideo function does not respond to the call.

电话里什么也没有发生。

如果我在调用它的前后放置一个警报,第一个警报会弹出,但第二个永远不会发生。我希望无法转到 captureError 回调函数并弹出一条消息,但仍然没有任何反应。

/**
 *
 * captures the video 
 * A button will call this function
 * Launch device video recording application,
 * allowing user to capture 1 video clip
 */
function onCaptureVideo() {
  var options = { limit: 1 };
  alert('trying to capture');
  // start image capture
  navigator.device.capture.captureVideo(captureSuccess, captureError, options);
}

还有回调函数

/**
 * Called when capture operation is finished
 * @param mediaFiles
 */
  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
  }
};

/** 
 *
 * Called if something bad happens.
 * @param error
 */
var captureError = function(error) {
  navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};

这需要工作,以便我可以在 android 和 IOS 上捕获视频和图片,然后将它们上传到服务器。

目前我正在 Android 三星 Galaxy S4 上进行测试

有人对如何使视频捕获工作有任何想法吗?

4

1 回答 1

1

问题是,无论出于何种原因,phonegap 3.0 都会出现一些小故障,并且似乎不想将新插件添加到 app/plugins 文件夹中的 android.json 文件中,然后不包含 app/platforms/android/ 中的插件assets/www/plugins 文件夹在构建时不会添加一些插件文件到 app/platforms/android/src/org/apache/cordova/{plugin folder name} 文件夹。在这种情况下“媒体捕获”。

我曾尝试将插件文件手动添加到 app/platforms/android/assets/www/plugins,但没有将插件正确添加到 app/plugins/android.json。它只是删除它们,下次构建时不会使用它们。

除非您是专家,否则 android.json 确实需要通过 phonegap 来完成。

所以我要做的是,备份我的 app/platforms/android/src/org/apache/cordova/ 文件夹以及 app/platforms/android/assets/www/plugins 文件夹。

然后我将我的项目文件夹全部移到另一个位置作为稳固的备份,并将我的项目源从 git hub 拉下来并像这样重建整个项目。我还必须感谢 Adam Wade Harris,你会发现他在在这里,还有phonegap问题和答案,他给了我这个脚本的一部分。

在此处输入您的真实项目和反向域以及应用程序名称

phonegap create {newAppFolderName} com.somedomain.prefix AppShortName
cd newAppFolderName
phonegap build android

使用假分支设置 git

git init

在此处放入您的真实项目存储库

git remote add origin git@bitbucket.org:someorganization/yourrepo.git
git fetch origin
git checkout -b nothingBranch
git add .
git commit -m "nothing"

在此处查看您的真实分支

git checkout -b master origin/master
git branch --set-upstream-to=origin/master master

在您的项目中创建平台文件夹

mkdir /path/to/newAppFolderName/platforms/

为您可能喜欢的每个插件执行此操作

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git

phonegap build android

这可能不适用于每个人,确保将原始项目保留在某个地方并希望获得最好的结果,复制任何最终丢失的插件文件,即使进行了干净的重建,phonegap 似乎遗漏了几个文件夹,我不得不把再次手动将它们放置到位。

于 2013-09-24T13:45:23.917 回答