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

版权声明:本博客为博主原创,未经允许不能转载 https://blog.csdn.net/qq_43466173/article/details/85758916

功能: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();   // 开始上传
}

猜你喜欢

转载自blog.csdn.net/qq_43466173/article/details/85758916