功能:H5打包的app调用手机摄像头进行拍照、录制视频并上传
打包工具:Hbuilder(不得不说这个工具挺方便的,就是没有linux环境下的安装包,本人用的是深度系统
本篇没有html代码,主要是使用方法的一个汇总,如果要更详细的介绍用力戳
H5api接口官网
上代码(js):
var cmr = null // 初始化变量
// 创建plus环境
if (window.plus) {
plusReady();
} else {
document.addEventListener('plusready', plusReady, false);
}
function plusReady() {
cmr = plus.camera.getCamera(); // 初始化摄像头
}
/ 摄像
function videoCapture() {
var res = cmr.supportedVideoResolutions[0]; // 获取手机支持的视频分辨率,默认获取第一个(这样写的情况下)
var fmt = cmr.supportedVideoFormats[0]; // 获取手机支持的视频格式,默认获取第一个(这样写的情况下)
console.log("Resolution: " + res + ", Format: " + fmt);
$('#xx').append("Resolution: " + cmr.supportedVideoResolutions + ", Format: " + fmt);
cmr.startVideoCapture(function (path) {
// 拍摄视频成功
// alert( "Capture video success: " + path );
// 上传方法
createUpload(path)
},
function (error) {
// 拍摄视频失败,取消录制视频也会触发
alert( "Capture video failed: " + error.message );
},
// 指定参数
{resolution: res, format: fmt, index: 1}
);
}
// 拍照
function captureImage() {
// var cmr = plus.camera.getCamera();
var res = cmr.supportedImageResolutions[0]; // 获取手机支持的图片分辨率,默认获取第一个(这样写的情况下)
var fmt = cmr.supportedImageFormats[0]; // 获取手机支持的图片格式,默认获取第一个(这样写的情况下)
console.log("Resolution: " + res + ", Format: " + fmt);
cmr.captureImage(function (path) {
// alert( "Capture image success: " + path );
createUpload(path)
},
function (error) {
// alert( "Capture image failed: " + error.message );
},
{resolution: res, format: fmt}
);
}
function createUpload(file) {
// 创建一个上传的任务,upload_url是要上传的服务器地址
var task = plus.uploader.createUpload(upload_url, {method: "POST"}, function (t, status) {
// 上传完成
if (status == 200) {
// 上传成功
} else {
// 上传失败
}
});
task.addFile(file, {key: "file"}); // 添加文件
// task.addData( "string_key", "string_value" ); 可以添加需要上传的json数据
task.start(); // 开始上传
}
来源:CSDN
作者:仓底储备粮
链接:https://blog.csdn.net/qq_43466173/article/details/85758916