一:
公司代码需求,要求用户在H5内上传视频的时候必须是刚拍摄的。这就需要我们在调起相机的时候只调起拍摄,并且不能有BROWSER出现。
1、单独调起拍照:
// 激活系统的照相机进行拍照
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
// 保存照片到指定的路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, getUriForFile(activity, new File(fileAbsolutePath)));
activity.startActivityForResult(intent, Config.CAMERA_IMAGE_REQUEST_CODE); //根据CODE获取回传结果
2、单独调起拍摄:
// 激活系统的照相机进行拍照
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
// 设置拍摄质量,目前系统只支持 0、1两个值
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, Config.CAMERA_VIDEO_QUALITY);
// 保存照片到指定的路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, getUriForFile(activity, new File(fileAbsolutePath)));
activity.startActivityForResult(intent, Config.CAMERA_VIDEO_REQUEST_CODE);
3、调起系统拍摄应用:
Intent.setAction(MediaStore.INTENT_ACTION_VIDEO_CAMERA)
PS:官方给出的解释是,前两种调起的是系统级API,第三种调起系统拍摄应用
二:
H5有没有能直接调起Android拍照与摄像的功能呢?一查还真有
拍照:<p>Capture Image: <input type="file" accept="image/*" id="capture" capture="camera">
系统接口:<p>Capture Audio: <input type="file" accept="audio/*" id="capture" capture="camera">
摄像:<p>Capture Video: <input type="file" accept="video/*" id="capture" capture="camcorder">
大家可以去这个链接 https://mobilehtml5.org/ts/?id=23 在Chrome里选择开发模式查看H5代码