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

isSaveToAlbum:

  • 类型:布尔
  • 描述:(可选项)拍照完成后是否保存到本地相册
  • 默认:false

isSaveOriginal:

  • 类型:布尔
  • 描述:(可选项)拍照完成后保存相册照片是否带水印
  • 默认:false
  • 注意:isSaveToAlbum和本参数均为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 mediaCollector = api.require('mediaCollector');
mediaCollector.videoPreview({
    videoPath:widget://res/123.mp4
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVideoThumbnail

获取视频缩略图

getVideoThumbnail({params})

Params

videoPath:

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

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

chooseImage

选择图片,可以从相册里选择多张,也可以通过拍照返回一张

chooseImage({params}, callback(ret))

params

sourceType:

  • 类型:数组
  • 描述:(可选项)选择图片的来源,album:从相册选择图片,camera:使用相机
  • 默认:['album', 'camera'],此时会弹出选择框让用户选择是拍照还是相册

shootMode:

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

mirror:

  • 类型:布尔类型
  • 描述:(可选项)是否关闭自拍镜像,前置摄像头拍照时生效
  • 默认:false
  • 注意:在iOS端本参数始终为false,即前置摄像头拍摄的照片或视频(如文字)在保存时自动翻转成镜面图像(可正常阅读的文字---非反字)

count:

  • 类型:数字类型
  • 描述:(可选项)最多可以选择的图片张数,仅从相册选择时有效,相机拍照只会返回一张
  • 默认:9

watermark:

  • 类型:JSON对象
  • 描述:(可选项)图片水印字符串,不传则不显示水印,仅图片支持水印设置
{
    text:"",             //字符串类型;水印文本 需要换行用‘/n’
    color:"#fff",        //字符串类型;水印颜色;支持 rgb、rgba、#;默认:'#ffffff'
    alpha:"0.5",        //数字类型;水印颜色透明度;取值范围0~1;默认:'0.5'
    font:0,              //数字类型;水印文字大小;取值范围 0:20;1:24;2:16  默认:0
    position:5           //数字类型;水印位置;取值范围 0~8;0-正下方;1-正上方;2-正左方;3-正右方;4-左上方;5-左下方;6-右上方;7-右下方;8-正中间
}

recordSecond:

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

isEditImage:

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

isSaveToAlbum:

  • 类型:布尔
  • 描述:(可选项)拍照完成后是否保存到本地相册,仅拍照模式下支持
  • 默认:false

isSaveOriginal:

  • 类型:布尔
  • 描述:(可选项)拍照完成后保存相册照片是否带水印,仅拍照模式下支持
  • 默认:false
  • 注意:isSaveToAlbum和本参数均为true时原图和水印图都保存到相册

returnThumbnail:

  • 类型:布尔类型
  • 描述:(可选项)是否需要返回缩略图,watermark生效时,此参数无效,只返回带水印的路径
  • 默认:false

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:

{
    pictures:[{ //选择内容列表
      fileName:'',	//字符串类型;文件名称
      filePath:'',	//字符串类型;文件路径(沙盒路径)
      fileSize:666,	//数字类型;文件大小
      thumbPath:'',	//字符串类型;缩略图路径,returnThumbnail为true且无水印参数时返回
    }]
}

示例代码

var mediaCollector = api.require('mediaCollector');
mediaCollector.chooseImage({
    watermark:{
        text:'我是水印',
        position:0,
        font:1,
        color:'#FF00FF',
        alpha:0.6
    }
}, function(ret) { 
     alert(JSON.stringify(ret));
});
是否仍需要帮助? 请保持联络!
最后更新于 2024/07/31