媒体文件 API
选择图片
chooseImage
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.chooseImage({
count: 9,
sourceType: ["album", "camera"],
success: function (res) {
/**
{
tempFiles: [{"base64":"","size":"", "type": ""}],//已选择文件列表,列表中每个对象包含本地文件id、base64(图片的 base64 编码后的字符串)、size(文件大小)、type(文件类型)
}
*/
},
fail: function (err) {},
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| count | Number | 否 | 最多可以选择的图片张数,默认 9 张 |
| sourceType | Array | 否 | 'album' 从相册选图,'camera' 使用相机,默认二者都有,当使用 camera 方式选择图片的时候忽略 count 【仅在移动端生效】 |
| quality | String | 否 | 后续版将会丢弃 medium、high 两种选择,只返回 low;对应不同的大小裁剪(详情说明参考如下:图片裁剪说明);low:默认质量;medium:中质量;high:高质量;选择图片 【仅在移动端生效】 |
图片裁剪说明
- 低质量:
- 缩放:
- 原图图片最小边<=200:不缩放
- 原图图片最小边>200:最小边缩小至200
- 压缩:
- 降低图片存储空间大小
- 在缩放后图片基础上做质量压缩85%
- 中等质量:
- 缩放:
- 原图图片最小边<=600:不缩放
- 原图图片最小边>600:最小边缩小至600
- 压缩:
- 在缩放后图片基础上质量压缩85%
- 高质量:
- 缩放:
- 原图最大边<=1200,不缩放使用原图
- 原图最大边>1200:最小边缩小至1200
- 压缩:
- 在缩放后图片的基础做质量压缩85%
SUCCESS 返回值说明
| 字段 | 类型 | 说明 |
|---|---|---|
| tempFiles | Array | 图片的本地文件列表 |
tempFiles 结构说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | String | 图片文件 id |
| path | String | 本地文件路径 |
| base64 | String | 图片的 base64 数据,非原图,建议用作缩略图展示 |
| type | String | 所选择文件 mimeType 类型 |
| size | Number | 所选择文件大小,单位:Byte |
| name | String | 文件名称 |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法 |
| -6 | CLIENT_INTERNAL_ERROR | 客户端内部错误 |
获取图片信息
getImageInfo
蓝信版本:
ios: >7.21.15android: >7.21.15windows: >=7.31.30mac: >=7.31.30
示例代码
lx.media.getImageInfo({
src: "localId",
success: function (res) {
/**
{
width: 100,
height: 100,
size: 102400 // 文件大小,单位:Byte
}
*/
},
fail: function (err) {},
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| src | String | 是 | 图片的路径,可以是相对路径、临时文件路径、存储文件路径 |
SUCCESS 返回值说明
| 字段 | 类型 | 说明 |
|---|---|---|
| width | Number | 图片宽度,单位 px。不考虑旋转 |
| height | Number | 图片高度,单位 px。不考虑旋转 |
| size | Number | 文件大小,单位:Byte |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法 |
预览图片
previewImage
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.previewImage({
current: "",
urls: [],
actions: ["save", "share"],
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| current | String | 否 | 当前显示图片的链接或 localId,不填则默认为 urls 的第一张 |
| urls | Array[String] | 是 | 需要预览的图片链接列表,支持 localId 和链接 |
| actions | Array[String] | 否 | 长按图片支持的事件["save","share"]; save - 保存到本地; share - 转发功能,长按选择后再选择会话或群 |
压缩图片
compressImage
压缩图片接口,可选压缩质量。pc 端只支持 jpg,png,jpeg
蓝信版本:
ios: >=7.12.15android: >=7.12.15windows: >=7.31.30mac: >=7.31.30
示例代码
lx.media.compressImage({
filePaths: ["localId", "localId"],
ratio: 80,
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filePaths | Array[String] | 是 | 图片的路径列表,支持 localId 和链接 |
| ratio | Number | 否 | 压缩比例,0-100 数值,不填默认 80,数值越小,质量越低,压缩率越高 |
SUCCESS 返回值说明
| 字段 | 类型 | 说明 |
|---|---|---|
| tempFilePaths | Array[String] | 压缩后的图片路径列表 |
选择视频
chooseVideo
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.chooseVideo({
sourceType: ["album", "camera"],
maxDuration: 300,
compressed: true,
needThumbnail: false,
success: function (res) {
/**
{
localId: 'string' //视频文件id
}
*/
},
fail: function (err) {},
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sourceType | Array | 是 | 'album' 从相册选视频,'camera' 使用相机,移动端可选,pc、mac 只填 album |
| maxDuration | Number | 否 | 拍摄视频最长拍摄时间,单位:秒,最大限制为 300 秒,如填写值超过 300 秒,则按照 300 秒做限制 |
| compressed | Boolean | 否 | 是否压缩所选择的视频文件,默认为 true |
| needThumbnail | Boolean | 否 | 是否需要缩略图,该缩略图可作为视频封面,默认为 false |
SUCCESS 返回值说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | String | 视频文件 id |
| duration | Number | 视频时长 |
| type | String | 视频文件类型 |
| size | Number | 视频文件大小,单位:Byte |
| height | Number | 返回选定视频的高度 |
| width | Number | 返回选定视频的宽度 |
| name | String | 文件名称 |
| thumbnail | String | 缩略图 base64,如果 payload 中 needThumbnail 为 true 会返回缩略图,可用作视频封面 |
预览视频
previewVideo
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.previewVideo({
url: "String",
startTime: 10,
orientation: "portrait",
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | String | 是 | 视频 URL,或视频选择/下载后的 localId |
| startTime | Number | 否 | 当前视频播放起始时间点,单位(秒) |
| orientation | String | 否 | 支持横屏,默认 portrait,支持 portrait / landscape,定义输出设备中的页面可见区域高度是否大于或等于宽度 |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法,没有 localId/url |
| -6 | CLIENT_INTERNAL_ERROR | 客户端内部错误 |
| -8 | NOT_EXIST | 文件不存在 |
开始录音
startRecord
蓝信版本:
ios: >6.6.85android: >6.6.88windows: 不支持mac: 不支持
示例代码
lx.media.startRecord({
format: "mp3",
success: function (res) {},
fail: function (err) {},
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| format | String | 否 | mp3,不传则返回默认格式 |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -6 | CLIENT_INTERNAL_ERROR | 客户端内部错误,录音失败 |
停止录音
stopRecord
蓝信版本:
ios: >6.6.85android: >6.6.88windows: 不支持mac: 不支持
示例代码
lx.media.stopRecord();
SUCCESS 返回值说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | String | 音频文件的 localId |
| duration | Number | 录音时长 单位:秒 |
| type | String | 音频文件类型 |
| size | Number | 音频文件大小,单位:Byte |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -8 | NOT_EXIST | 文件不存在、未先调用录制 |
监听录音自动停止
onRecordEnd
蓝信版本:
ios: >6.6.85android: >6.6.88windows: 不支持mac: 不支持
示例代码
lx.media.onRecordEnd((result) => {});
result 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | String | 音频文件 id |
| duration | Number | 录音时长 单位:秒 |
| type | String | 音频文件类型 |
| size | Number | 音频文件大小,单位:Byte |
播放语音
playVoice
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.playVoice({
localId: "String",
startOver: false,
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| localId | String | 是 | 选择或下载音频后,获取的音频文件 localId |
| startOver | Boolean | 否 | 是否重新播放当前音频(对于暂停的音频默认继续当前进度播放); 仅移动端版本>=8.4.0 支持 |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法,没有 localId |
| -6 | CLIENT_INTERNAL_ERROR | 客户端内部错误(解码失败等) |
| -8 | NOT_EXIST | 当前播放的音频资源不存在 |
暂停播放语音
pauseVoice
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.pauseVoice({
localId: "String",
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| localId | String | 是 | 正在播放音频的 localId |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法,没有 localId |
| -8 | NOT_EXIST | 文件不存在、播放的资源不一致(未调用播放、传入的 localId 与播放的不一致) |
停止播放语音
stopVoice
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.stopVoice({
localId: "String",
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| localId | String | 是 | 正在播放音频的 localId |
errorCode 说明
| code 值 | message 值 | 说明 |
|---|---|---|
| -1 | INVALID_REQUEST | 请求参数不合法,没有 localId |
| -8 | NOT_EXIST | 文件不存在、播放的资源不一致(未调用播放、传入的 localId 与播放的不一致) |
监听语音播放中接口
onVoicePlay
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.onVoicePlay((result) => {});
result 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | String | 当前播放音频的 localId |
| currentTime | Number | 当前播放进度 单位:秒 |
监听语音播放完毕接口
onVoicePlayEnd
蓝信版本:
ios: >6.6.85android: >6.6.88windows: >6.6.110mac: >6.6.202
示例代码
lx.media.onVoicePlayEnd((result) => {});
result 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | Stirng | 音频的 localId |
监听音频因为受到系统占用而被中断开始事件
onAudioInterruptionBegin
蓝信版本:
ios: >6.6.45android: 不支持windows: 不支持mac: 不支持
示例代码
lx.media.onAudioInterruptionBegin((result) => {});
result 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | Stirng | 音频的 localId |
监听音频中断结束事件
onAudioInterruptionEnd
蓝信版本:
ios: >6.6.45android: 不支持windows: 不支持mac: 不支持
示例代码
lx.media.onAudioInterruptionEnd((result) => {});
result 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| localId | Stirng | 音频的 localId |
保存到系统相册
saveToPhotoAlbum
保存图片或视频到系统相册
蓝信版本:
ios: >=8.1.0android: >=8.1.0windows: 不支持mac: 不支持
示例代码
lx.media.saveToPhotoAlbum({
url: "",
success: function () {},
fail: function (error) {},
});
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | String | 是 | 图片或视频的 url |