mediaCollector

模块概述

mediaCollector 实现了图片的拍摄、视频的录制及视频和图片的预览功能

注意:使用本模块前,需在云编译页面勾选添加访问摄像头权限(android 6.0+ 需要动态申请相机及音频录制权限)

模块接口

openCamera

打开相机

openCamera({params}, callback(ret))

params

imagePath:

  • 类型:字符串
  • 描述:图片保存路径,要求本地路径(fs://),暂仅支持iOS端
  • 注意:android平台自动创建路径,无需传入该参数

watermark:

  • 类型:JSON对象
  • 描述:(可选项)图片水印字符串,不传则不显示水印
{
    text:"",            // 字符串类型;水印文本
    color:"#fff",       // 字符串类型;水印颜色;支持 rgb、rgba、#;默认:'#ffffff'
    size:18             // 数字类型;水印文字大小;单位:像素
}

videoPath:

  • 类型:字符串
  • 描述:图片保存路径,要求本地路径(fs://),暂仅支持iOS端
  • 注意:android平台自动创建路径,无需传入该参数

recordSecond:

  • 类型:数字
  • 描述:(可选项)拍摄视频时的视频时长
  • 默认:15s

shootMode:

  • 类型:数字
  • 描述:(可选项)拍摄模式
  • 默认:0
  • 取值范围:
    • 0:拍照片+拍视频
    • 1:拍照片
    • 2:拍视频

isEditImage:

  • 类型:布尔
  • 描述:(可选项)拍照完成后是否显示画笔按钮
  • 默认:true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    type:'image',  // 字符串类型;可取值范围: image|video
    path:'',        // 字符串类型;图片或视频路径
    videoThumbnailPath:'', // 字符串类型;视频缩略图地址,仅type为video时返回
    fileSize:30 // 数字类型;文件大小;单位:字节数
}

示例代码

var mediaCollector = api.require('mediaCollector');
mediaCollector.openCamera({
    imagePath:'fs://image/sss.jpg',
    watermark:'拍摄人:李某某\r拍摄时间:2022-12-13\r拍摄地点:用友软件园西区3号楼',
    videoPath:'fs://video/123.mp4'
}, function(ret, err) { 
    if (ret.type === 'video') {
       document.getElementById('video1').src = ret.path;
    } else {
       document.getElementById('image2').src = ret.path;
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openPreview

打开预览页面

openPreview({params})

Params

paths:

  • 类型:JSON数组
  • 描述:需要预览的路径
  • 内部字段:
[{
    url:'',    //字符串类型;资源路径;
    type:''    //字符串类型;资源类型;video|image  
},{}....]

selectedIndex:

  • 类型:数字
  • 描述:(可选项)默认显示指定索引
  • 默认:0

示例代码

var mediaCollector = api.require('mediaCollector');
mediaCollector.openPreview({
    paths:[{
        url:'widget://image/img1.jpeg',
        type:'image',
    },{
        url:'widget://image/img2.jpeg',
        type:'image'
    },{
        url:'widget://image/img3.jpeg',
        type:'image'
    }],
    selectedIndex:0
},function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

imageEdit

编辑图片

imageEdit({params}, callback(ret))

params

image:

  • 类型:字符串
  • 描述:要编辑的图片的路径,要求本地路径(fs:// box://)
  • 注意:android 10+ 对sdcard进行强制分区存储,导致fs://路径访问受限,因此建议使用box://路径,

imagePath:

  • 类型:字符串
  • 描述:图片保存路径,要求本地路径(fs:// box://)
  • 注意:android 10+ 对sdcard进行强制分区存储,导致fs://路径访问受限,因此建议使用box://路径,

watermark:

  • 类型:JSON对象
  • 描述:(可选项)图片水印字符串,不传则不显示水印
{
    text:"",            // 字符串类型;水印文本
    color:"#fff",       // 字符串类型;水印颜色;支持 rgb、rgba、#;默认:'#ffffff'
    size:18             // 数字类型;水印文字大小;单位:像素
}

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{ 
    path:''        // 字符串类型;图片或视频路径
}

示例代码

var demo = api.require('mediaCollector');
demo.imageEdit({
 image:'widget://image/img2.jpeg',
 imagePath:'fs://temp/sss.jpg',
 watermark:'拍摄人:王某某\r拍摄时间:2020-12-13\r拍摄地点:用友软件园中去47号G3'
},function(ret) {
    console.log(JSON.stringify(ret));
    document.getElementById('image2').src = ret.realPath;
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

videoPreview

打开预览视频页面

videoPreview({params})

Params

videoPath:

  • 类型:字符串
  • 描述:预览的视频的地址

示例代码

 var pictureSelector = api.require('pictureSelector');
pictureSelector.videoPreview({
    videoPath:widget://res/123.mp4
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVideoThumbnail

获取视频缩略图

getVideoThumbnail({params})

Params

videoPath:

  • 类型:字符串
  • 描述:视频的地址

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{ 
    thumbnailPath:''        // 字符串类型;视频缩略图路径
}

示例代码

 var pictureSelector = api.require('pictureSelector');
pictureSelector.getVideoThumbnail({
    videoPath:widget://res/123.mp4
}, function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/19