H5app 调用手机摄像头拍照、录制视频并上传demo

给你一囗甜甜゛ 提交于 2019-12-03 11:05:15

功能: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();   // 开始上传
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!