# 媒体
# 图片
# saveImageToPhotosAlbum
基础库 2.0.7 开始支持,iOS版本 2.10.7,Android版本2.11.43
saveImageToPhotosAlbum(Object object)
保存图片到系统相册。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
filePath | string | 是 | 图片文件路径,可以是临时文件路径或永久文件路径,不支持网络图片路径 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读取外部存储、读写外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.saveImageToPhotosAlbum({
filePath: 'finfile://xxxx',
success(res) { }
})
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予相册权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请相册权限
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读取外部存储、读写外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# previewMedia
预览图片和视频。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
sources | Array.<Object> | 是 | 需要预览的资源列表 | |
current | number | 0 | 否 | 当前显示的资源序号 |
showmenu | boolean | true | 否 | 是否显示长按菜单,长按图片显示发送给朋友、收藏、保存图片、搜一搜、打开名片/前往群聊/打开小程序(若图片中包含对应二维码或小程序码)的菜单 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.sources 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
url | String | 是 | 图片或视频的地址 | |
type | String | image | 否 | 资源的类型,默认为图片 |
poster | string | 否 | 视频的封面图片 |
type 的合法值
值 | 说明 | 最低版本 |
---|---|---|
image | 图片 | |
video | 视频 |
# previewImage
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
previewImage(Object object)
在新页面中全屏预览图片。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
urls | Array.<string> | 是 | 需要预览的图片链接列表 | |
current | string | urls 的第一张 | 否 | 当前显示图片的链接 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.previewImage({
current: '', // 当前显示图片的http链接
urls: [] // 需要预览的图片http链接列表
})
# getImageInfo
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
getImageInfo(Object object)
获取图片信息。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 图片的路径,可以是相对路径、临时文件路径、存储文件路径、网络图片路径 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
width | number | 图片原始宽度,单位px。 |
height | number | 图片原始高度,单位px。 |
path | string | 图片的本地路径 |
示例代码
ft.getImageInfo({
src: 'images/a.jpg',
success(res) {
console.log(res.width)
console.log(res.height)
}
})
ft.chooseImage({
success(res) {
ft.getImageInfo({
src: res.tempFilePaths[0],
success(res) {
console.log(res.width)
console.log(res.height)
}
})
}
})
# compressImage
ft.compressImage(Object object)
基础库 2.0.5 开始支持,iOS版本 2.10.4,Android版本 2.11.39
压缩图片接口,可选压缩质量
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 图片路径,图片的路径,支持本地路径、代码包路径 | |
quality | number | 80 | 否 | 压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效)。 |
compressedWidth | number | 否 | 压缩后图片的宽度,单位为 px,若不填写则默认以 compressedHeight 为准等比缩放。 | |
compressedHeight | number | 否 | 压缩后图片的宽度,单位为 px,若不填写则默认以 compressedWidth 为准等比缩放。 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 压缩后图片的临时文件路径 (本地路径) |
示例代码
ft.compressImage({
src: '', // 图片路径
quality: 80 // 压缩质量
})
# chooseFile
从文件管理器选择文件(可代替chooseMessageFile)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
count | number | true | 是 | 最多可以选择的文件个数,可以 0~100 |
type | string | 'all' | 否 | 所选的文件的类型 |
extension | Array.<string> | 否 | 根据文件拓展名过滤,仅 type==file 时有效。每一项都不能是空字符串。默认不过滤。 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读写外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.type 的合法值
值 | 说明 |
---|---|
all | 从所有文件选择 |
video | 只能选择视频文件 |
image | 只能选择图片文件 |
file | 可以选择除了图片和视频之外的其它的文件 |
注意
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读写外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# chooseMessageFile
基础库1.3.9开始支持,需要以自定义 API 实现
从客户端会话选择文件
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
count | number | true | 是 | 最多可以选择的文件个数,可以 0~100 |
type | string | 'all' | 否 | 所选的文件的类型 |
extension | Array.<string> | 否 | 根据文件拓展名过滤,仅 type==file 时有效。每一项都不能是空字符串。默认不过滤。 | |
camera | string | 'back' | 否 | 默认拉起的是前置或者后置摄像头。 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读写外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.type 的合法值
值 | 说明 |
---|---|
all | 从所有文件选择 |
video | 只能选择视频文件 |
image | 只能选择图片文件 |
file | 可以选择除了图片和视频之外的其它的文件 |
注意
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读写外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# chooseImage
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
chooseImage(Object object)
从本地相册选择图片或使用相机拍照。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
count | number | 9 | 否 | 最多可以选择的图片张数 |
sizeType | Array.<string> | ['original', 'compressed'] | 否 | 所选的图片的尺寸 |
sourceType | Array.<string> | ['album', 'camera'] | 否 | 选择图片的来源 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读取外部存储、读写外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.sizeType 的合法值
值 | 说明 |
---|---|
original | 原图 |
compressed | 压缩图 |
object.sourceType 的合法值
值 | 说明 |
---|---|
album | 从相册选图 |
camera | 使用相机 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFilePaths | Array.<string> | 图片的本地临时文件路径列表 |
tempFiles | Array.<Object> | 图片的本地临时文件列表 |
res.tempFiles 的结构
属性 | 类型 | 说明 |
---|---|---|
path | string | 本地临时文件路径 |
size | number | 本地临时文件大小,单位 B |
示例代码
ft.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success(res) {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFilePaths
}
})
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予相册权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请相册权限
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读取外部存储、读写外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# fileToBase64
ft.fileToBase64(Object object)
图片转换成base64数据
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
url | string | 是 | 图片路径,图片的路径,支持本地路径 |
object.success 回调函数
参数
属性 | 类型 | 说明 |
---|---|---|
data | string | 转换后的base64数据 |
示例代码
ft.fileToBase64({
url: '', // 图片路径
})
# 视频
# saveVideoToPhotosAlbum
基础库 2.0.7 开始支持,iOS版本 2.10.7,Android版本2.11.43
saveVideoToPhotosAlbum(Object object)
保存视频到系统相册。支持mp4视频格式。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
filePath | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 (本地路径) | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读取外部存储、读写外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.saveVideoToPhotosAlbum({
filePath: 'finfile://xxx',
success (res) {
console.log(res.errMsg)
}
})
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予相册权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请相册权限
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读取外部存储、读写外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# createVideoContext
基础库 2.11.2 开始支持,iOS 版本 2.34.1,Android 版本 2.34.1 VideoContext ft.createVideoContext(string id, Object this)
创建 video 上下文 VideoContext 对象。
参数
string id
video 组件的 id
Object this
在自定义组件下,当前组件实例的this,以操作组件内 video 组件
返回值
VideoContext
# VideoContext 方法
VideoContext.play()
播放视频
VideoContext.pause()
暂停视频
VideoContext.stop()
停止视频
VideoContext.seek(number position)
跳转到指定位置
position 单位 s
VideoContext.sendDanmu(Object data)
发送弹幕
参数
Object data
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 弹幕文字 | |
color | string | 否 | 弹幕颜色 |
VideoContext.playbackRate(number rate)
设置倍速播放
倍率 rate,合法值 0.5/0.8/1.0/1.25/1.5/2
VideoContext.requestFullScreen(Object object)
进入全屏(IDE 不支持)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
direction | number | 否 | 设置全屏时视频的方向,不指定则根据宽高比自动判断。合法值:0、90、-90 |
VideoContext.exitFullScreen()
退出全屏(IDE 不支持)
VideoContext.showStatusBar()
显示状态栏,仅在iOS全屏下有效。
VideoContext.hideStatusBar()
隐藏状态栏,仅在iOS全屏下有效。
VideoContext.requestBackgroundPlayback()
进入后台音频播放模式(IDE 不支持)
VideoContext.exitBackgroundPlayback()
退出后台音频播放模式(IDE 不支持)
# getVideoInfo
基础库3.1.7开始支持,iOS版本2.42.13,Android版本2.42.13
getVideoInfo(Object object)
获取视频详细信息。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
orientation | string | 画面方向 |
type | string | 视频格式 |
duration | number | 视频长度 |
size | number | 视频大小,单位 kB |
width | number | 视频的宽,单位 px |
height | number | 视频的长,单位 px |
fps | number | 视频帧率 |
bitrate | number | 视频码率,单位 kbps |
示例代码
ft.getVideoInfo({
src: 'finfile://tmp_tmp_b118e2e5e2618d4d8bbbb7b0a3ad806a.mp4',
success(res) {
console.log(res)
}
})
# compressVideo
基础库3.0.3开始支持,iOS版本2.38.1,Android版本2.38.1
compressVideo(Object object)
压缩视频接口。开发者可指定压缩质量 quality 进行压缩。当需要更精细的控制时,可指定 bitrate、fps、和 resolution,当 quality 传入时,这三个参数将被忽略。原视频的相关信息可通过 getVideoInfo 获取。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 | |
quality | string | 否 | 压缩质量 | |
bitrate | number | 是 | 码率,单位 kbps | |
fps | number | 是 | 帧率 | |
resolution | number | 是 | 相对于原视频的分辨率比例,取值范围(0, 1] | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res 属性 类型 说明 tempFilePath string 压缩后的临时文件地址 size string 压缩后的大小,单位 kB
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 压缩后的临时文件地址 |
size | string | 压缩后的大小,单位 kB |
示例代码
ft.compressVideo({
src: 'finfile://tmp_tmp_b118e2e5e2618d4d8bbbb7b0a3ad806a.mp4',
bitrate:'300',
fps: '30',
resolution: '0.8',
success(res) {
console.log(res)
}
})
# chooseVideo
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
chooseVideo(Object object)
从本地相册选择视频或使用相机拍摄视频。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
sourceType | Array.<string> | ['album', 'camera'] | 否 | 选择视频的来源 |
compressed | boolean | true | 否 | 是否压缩所选择的视频文件 |
maxDuration | number | 60 | 否 | 拍摄视频最长拍摄时间,单位秒 |
camera | string | 'back' | 否 | 默认拉起的是前置或者后置摄像头。 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予读取外部存储权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.sourceType 的合法值
值 | 说明 |
---|---|
album | 从相册选择视频 |
camera | 使用相机拍摄视频 |
object.camera 的合法值
值 | 说明 |
---|---|
back | 默认拉起后置摄像头 |
front | 默认拉起前置摄像头 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
coverImagePath | string | 选定视频的预览图片路径 |
duration | number | 选定视频的时间长度 |
tempFilePath | string | 选定视频的临时文件路径 |
size | number | 选定视频的数据量大小 |
width | number | 图片原始宽度,单位px。 |
height | number | 图片原始高度,单位px |
示例代码
ft.chooseVideo({
sourceType: ['album', 'camera'],
maxDuration: 60,
camera: 'back',
success(res) {
console.log(res.tempFilePath)
}
})
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予相册权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请相册权限
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予读取外部存储权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# chooseMedia
chooseMedia(Object object) 拍摄或从手机相册中选择图片或视频。
参数 Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
count | number | 9 | 否 | 最多可以选择的文件个数 |
mediaType | Array.<string> | ['image', 'video'] | 否 | 文件类型 |
sourceType | Array.<string> | ['album', 'camera'] | 否 | 图片和视频选择的来源 |
maxDuration | number | 10 | 否 | 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。 |
sizeType | Array.<string> | ['original', 'compressed'] | 否 | 仅对 mediaType 为 image 时有效,是否压缩所选文件 |
camera | string | 'back' | 否 | 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.mediaType 的合法值
值 | 说明 |
---|---|
image | 只能拍摄图片或从相册选择图片 |
video | 只能拍摄视频或从相册选择视频 |
object.sourceType 的合法值
值 | 说明 |
---|---|
album | 从相册选择 |
camera | 使用相机拍摄 |
object.camera 的合法值
值 | 说明 |
---|---|
back | 使用后置摄像头 |
front | 使用前置摄像头 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFiles | Array.<Object> | 本地临时文件列表 |
type | string | 文件类型,有效值有 image 、video |
res.tempFiles 的结构
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 本地临时文件路径 (本地路径) |
size | number | 本地临时文件大小,单位 B |
duration | number | 视频的时间长度 |
height | number | 视频的高度 |
width | number | 视频的宽度 |
thumbTempFilePath | string | 视频缩略图临时文件路径 |
示例代码
ft.chooseMedia({
count: 9,
mediaType: ['image','video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success(res) {
console.log(res.tempFiles.tempFilePath)
console.log(res.tempFiles.size)
}
})
# previewVideo
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
previewVideo(Object object)
在新页面中全屏预览视频。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
url | string | 是 | 视频资源地址,可以是临时视频路径或者网络视频路径。 | |
autoplay | boolean | false | 否 | 是否自动播放所选择的视频文件 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.previewVideo({
url: 'http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4',
autoplay: true,
success(res) {
console.log(res.tempFilePath)
}
})
# getVideoInfo
基础库3.1.17开始支持,iOS版本2.42.11,Android版本2.42.11
getVideoInfo(Object object)
获取视频详细信息。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 视频文件路径,自定义协议开头的本地文件路径 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
orientation | string | 画面方向,开发工具中该值固定为 up |
type | string | 视频格式 |
duration | number | 视频长度 |
size | number | 视频大小,单位 kB |
height | number | 视频的长,单位 px |
width | number | 视频的宽,单位 px |
fps | number | 视频帧率 |
bitrate | number | 视频码率,单位 kbps |
res.orientation 合法值
值 | 描述 |
---|---|
up | 默认 |
down | 180度旋转 |
left | 逆时针旋转90度 |
right | 顺时针旋转90度 |
up-mirrored | 同up,但水平翻转 |
down-mirrored | 同down,但水平翻转 |
left-mirrored | 同left,但垂直翻转 |
right-mirrored | 同right,但垂直翻转 |
示例代码
ft.getVideoInfo({
path: wx.env.USER_DATA_PATH + '/path/to/video.mp4'
success(res) {
console.log(res)
}
})
# VideoContext
VideoContext 实例,可通过 ft.createVideoContext 获取。VideoContext 通过 id 跟一个 video 组件绑定,操作对应的 video 组件。
方法
VideoContext.play()
播放视频VideoContext.pause()
暂停视频VideoContext.stop()
停止视频VideoContext.seek(number position)
跳转到指定位置VideoContext.sendDanmu(Object data)
发送弹幕VideoContext.playbackRate(number rate)
设置倍速播放VideoContext.requestFullScreen(Object object)
进入全屏。若有自定义内容需在全屏时展示,需将内容节点放置到 video 节点内。VideoContext.exitFullScreen()
退出全屏VideoContext.showStatusBar()
显示状态栏,仅在iOS全屏下有效VideoContext.hideStatusBar()
隐藏状态栏,仅在iOS全屏下有效VideoContext.exitPictureInPicture()
退出小窗,该方法可在任意页面调用
# 音频
# stopVoice
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
stopVoice(Object object)
结束播放语音。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.startRecord({
success(res) {
const tempFilePath = res.tempFilePath
ft.playVoice({
filePath: tempFilePath,
})
setTimeout(() => { ft.stopVoice() }, 5000)
}
})
# setInnerAudioOption
setInnerAudioOption(Object object) 设置 InnerAudioContext 的播放选项。设置之后对当前小程序全局生效。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
mixWithOther | boolean | true | 否 | 是否与其他音频混播,设置为 true 之后,不会终止其他应用内的音乐 |
obeyMuteSwitch | boolean | true | 否 | (仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音 |
speakerOn | boolean | true | 否 | true 代表用扬声器播放,false 代表听筒播放,默认值为 true。 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
注意 为保证整体体验,speakerOn 为 true 时,客户端会忽略 mixWithOthers 参数的内容,强制与其它音频互斥 不支持在播放音频的过程中切换为扬声器播放,开发者如需切换可以先暂停当前播放的音频并记录下当前暂停的时间点,然后切换后重新从原来暂停的时间点开始播放音频
# playVoice
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
playVoice(Object object)
开始播放语音,同时只允许一个语音文件正在播放, 如果前一个语音文件还没播放完,将中断前一个语音播放。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
filePath | string | 是 | 需要播放的语音文件的文件路径 | |
duration | number | 60 | 否 | 指定录音时长,到达指定的录音时长后会自动停止录音,单位:秒 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.startRecord({
success(res) {
const tempFilePath = res.tempFilePath
ft.playVoice({
filePath: tempFilePath,
complete() { }
})
}
})
# pauseVoice
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38
pauseVoice(Object object)
暂停正在播放的语音。再次调用ft.playVoice播放同一个文件时,会从暂停处开始播放。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.startRecord({
success(res) {
const tempFilePath = res.tempFilePath
ft.playVoice({
filePath: tempFilePath
})
setTimeout(() => { ft.pauseVoice() }, 5000)
}
})
# getAvailableAudioSources
基础库3.1.17开始支持,iOS版本2.42.13,Android版本2.42.13
getAvailableAudioSources(Object object)
获取当前支持的音频输入源。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
audioSources | Array.<string> | 支持的音频输入源列表 |
res.audioSources 合法值
值 | 描述 |
---|---|
auto | 自动设置,默认使用手机麦克风;插上耳麦后自动切换使用耳机麦克风。适用于所有平台。 |
buildInMic | 手机麦克风,仅限 iOS。 |
headsetMic | 耳机麦克风,仅限 iOS。 |
mic | 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android。 |
camcorder | 同 mic,适用于录制音视频内容,仅限 Android。 |
voice_communication | 同 mic,适用于实时沟通,仅限 Android。 |
voice_recognition | 同 mic,适用于语音识别,仅限 Android。 |
示例代码
ft.getAvailableAudioSources({
success(res) {
console.log(res.audioSources)
}
})
# createInnerAudioContext
InnerAudioContext ft.createInnerAudioContext()
创建 audio 上下文 InnerAudioContext 对象。
返回值
InnerAudioContext
# createAudioContext
AudioContext ft.createAudioContext(string id, Object this)
创建 audio 上下文 AudioContext 对象。
参数
string id
audio 组件的 id
Object this
在自定义组件下,当前组件实例的this,以操作组件内 audio 组件
返回值
AudioContext
# AudioContext
AudioContext 实例,可通过 ft.createAudioContext 获取。
AudioContext 通过 id 跟一个 audio 组件绑定,操作对应的 audio 组件。
方法
AudioContext.setSrc(string src)
设置音频地址AudioContext.play()
播放音频。AudioContext.pause()
暂停音频。AudioContext.seek(number position)
跳转到指定位置。
示例代码
<!-- audio.FXML -->
<audio src="{{src}}" id="myAudio" ></audio>
<button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暂停</button>
<button type="primary" bindtap="audio14">设置当前播放时间为14秒</button>
<button type="primary" bindtap="audioStart">回到开头</button>
// audio.js
Page({
onReady (e) {
// 使用 ft.createAudioContext 获取 audio 上下文 context
this.audioCtx = ft.createAudioContext('myAudio')
this.audioCtx.setSrc('http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46')
this.audioCtx.play()
},
data: {
src: ''
},
audioPlay () {
this.audioCtx.play()
},
audioPause () {
this.audioCtx.pause()
},
audio14 () {
this.audioCtx.seek(14)
},
audioStart () {
this.audioCtx.seek(0)
}
})
# InnerAudioContext
InnerAudioContext 实例,可通过 ft.InnerAudioContext 获取。
属性
string src
音频资源的地址,用于直接播放。number startTime
开始播放的位置(单位:s),默认为 0boolean autoplay
是否自动开始播放,默认为 falseboolean loop
是否循环播放,默认为 falsenumber volume
音量。范围 0~1。默认为 1number playbackRate
播放速度。范围 0.5-2.0,默认为 1。
方法
InnerAudioContext.play()
播放InnerAudioContext.pause()
暂停。暂停后的音频再播放会从暂停处开始播放InnerAudioContext.stop()
停止。停止后的音频再播放会从头开始播放。InnerAudioContext.seek(number position)
跳转到指定位置InnerAudioContext.destroy()
销毁当前实例InnerAudioContext.onCanplay(function callback)
监听音频进入可以播放状态的事件。但不保证后面可以流畅播放
InnerAudioContext.offCanplay(function callback)
取消监听音频进入可以播放状态的事件InnerAudioContext.onPlay(function callback)
监听音频播放事件InnerAudioContext.offPlay(function callback)
取消监听音频播放事件InnerAudioContext.onPause(function callback)
监听音频暂停事件InnerAudioContext.offPause(function callback)
取消监听音频暂停事件InnerAudioContext.onStop(function callback)
监听音频停止事件InnerAudioContext.offStop(function callback)
取消监听音频停止事件InnerAudioContext.onEnded(function callback)
监听音频自然播放至结束的事件InnerAudioContext.offEnded(function callback)
取消监听音频自然播放至结束的事件InnerAudioContext.onTimeUpdate(function callback)
监听音频播放进度更新事件InnerAudioContext.offTimeUpdate(function callback)
取消监听音频播放进度更新事件InnerAudioContext.onError(function callback)
监听音频播放错误事件InnerAudioContext.offError(function callback)
取消监听音频播放错误事件InnerAudioContext.onWaiting(function callback)
监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发InnerAudioContext.offWaiting(function callback)
取消监听音频加载中事件InnerAudioContext.onSeeking(function callback)
监听音频进行跳转操作的事件InnerAudioContext.offSeeking(function callback)
取消监听音频进行跳转操作的事件InnerAudioContext.onSeeked(function callback)
监听音频完成跳转操作的事件InnerAudioContext.offSeeked(function callback)
取消监听音频完成跳转操作的事件
示例代码
// innerAudioContext.js
const innerAudioContext = ft.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
innerAudioContext.onPlay(() => {
console.log('开始播放')
})
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})
# 背景音频
# stopBackgroundAudio
停止播放音乐。
ft.stopBackgroundAudio(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.stopBackgroundAudio()
# seekBackgroundAudio
控制音乐播放进度
ft.seekBackgroundAudio(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
position | number | --- | 是 | 音乐位置,单位:秒 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.seekBackgroundAudio({
position: 30
})
# playBackgroundAudio
使用后台播放器播放音乐
ft.playBackgroundAudio(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
dataUrl | string | 是 | 音乐链接,目前支持的格式有 m4a, aac, mp3, wav | |
title | string | 否 | 音乐标题 | |
coverImgUrl | string | 否 | 封面URL | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# pauseBackgroundAudio
暂停播放音乐
ft.pauseBackgroundAudio(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
ft.pauseBackgroundAudio()
# onBackgroundAudioStop
监听音乐停止事件
ft.onBackgroundAudioStop(function callback)
参数
function callback
音乐停止事件的回调函数
# onBackgroundAudioPlay
监听音乐播放事件
ft.onBackgroundAudioPlay(function callback)
参数
function callback
音乐播放事件的回调函数
# onBackgroundAudioPause
监听音乐暂停事件
ft.onBackgroundAudioPause(function callback)
参数
function callback
音乐暂停事件的回调函数
# getBackgroundAudioPlayerState
获取后台音乐播放状态
ft.getBackgroundAudioPlayerState(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
duration | number | 选定音频的长度(单位:s),只有在音乐播放中时返回 |
currentPosition | number | 选定音频的播放位置(单位:s),只有在音乐播放中时返回 |
status | number | 播放状态 |
downloadPercent | number | 音频的下载进度百分比,只有在音乐播放中时返回 |
dataUrl | string | 歌曲数据链接,只有在音乐播放中时返回 |
status 合法值
合法值 | 说明 |
---|---|
0 | 暂停中 |
1 | 播放中 |
2 | 没有音乐播放 |
示例代码
ft.getBackgroundAudioPlayerState({
success (res) {
const status = res.status
const dataUrl = res.dataUrl
const currentPosition = res.currentPosition
const duration = res.duration
const downloadPercent = res.downloadPercent
}
})
# getBackgroundAudioManager
获取全局唯一的背景音频管理器 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。
返回值
BackgroundAudioManager
# BackgroundAudioManager
BackgroundAudioManager 实例,可通过 ft.getBackgroundAudioManager 获取。
备注: iOS BackgroundAudioManager后台播放音频的能力,需要用户自行在target-capabilities处添加,background Modes 并勾选 audio,AirPlay,and Picture in Picture
属性
string src
音频的数据源。默认为空字符串,当设置了新的 src 时,会自动开始播放,目前支持的格式有 m4a, aac, mp3, wav。number startTime
音频开始播放的位置(单位:s)。string title
音频标题,用于原生音频播放器音频标题(必填)。原生音频播放器中的分享功能,分享出去的卡片标题,也将使用该值。string epname
专辑名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。string singer
歌手名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。string coverImgUrl
封面图 URL,用于做原生音频播放器背景图。原生音频播放器中的分享功能,分享出去的卡片配图及背景也将使用该图。string webUrl
页面链接,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。string protocol
音频协议。可以播放的格式取决于系统内置播放器。number playbackRate
播放速度。范围 0.5-2.0,默认为 1。(Android 需要 6 及以上版本)number duration
当前音频的长度(单位:s),只有在有合法 src 时返回。(只读)number currentTime
当前音频的播放位置(单位:s),只有在有合法 src 时返回。(只读)boolean paused
当前是否暂停或停止。(只读)number buffered
音频已缓冲的时间,仅保证当前播放时间点到此时间点内容已缓冲。(只读)string referrerPolicy
不支持
方法
BackgroundAudioManager.play()
播放BackgroundAudioManager.pause()
暂停音乐BackgroundAudioManager.seek(number currentTime)
跳转到指定位置BackgroundAudioManager.stop()
停止音乐BackgroundAudioManager.onCanplay(function callback)
监听音频进入可以播放状态的事件。但不保证后面可以流畅播放
BackgroundAudioManager.onPlay(function callback)
监听音频播放事件BackgroundAudioManager.onPause(function callback)
监听音频暂停事件BackgroundAudioManager.onStop(function callback)
监听音频停止事件BackgroundAudioManager.onEnded(function callback)
监听音频自然播放至结束的事件BackgroundAudioManager.onTimeUpdate(function callback)
监听音频播放进度更新事件BackgroundAudioManager.onError(function callback)
监听音频播放错误事件BackgroundAudioManager.onWaiting(function callback)
监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发BackgroundAudioManager.onSeeking(function callback)
监听音频进行跳转操作的事件BackgroundAudioManager.onSeeked(function callback)
监听音频完成跳转操作的事件BackgroundAudioManager.onNext(function callback)
监听用户在系统音乐播放面板点击下一曲事件(仅iOS)BackgroundAudioManager.onPrev(function callback)
监听用户在系统音乐播放面板点击上一曲事件(仅iOS)
示例代码
const backgroundAudioManager = ft.getBackgroundAudioManager()
backgroundAudioManager.title = '此时此刻'
backgroundAudioManager.epname = '此时此刻'
backgroundAudioManager.singer = '许巍'
backgroundAudioManager.coverImgUrl = 'http://xxx'
// 设置了 src 之后会自动播放
backgroundAudioManager.src = 'http://xxx'
# 实时音视频
# createLivePusherContext
createLivePusherContext()
创建 live-pusher 上下文 LivePusherContext 对象。
返回值
LivePusherContext
方法
LivePusherContext.start(Object object)
开始推流,同时开启摄像头预览LivePusherContext.stop(Object object)
停止推流,同时停止摄像头预览LivePusherContext.pause(Object object)
暂停推流LivePusherContext.resume(Object object)
恢复推流LivePusherContext.switchCamera(Object object)
切换前后摄像头
LivePusherContext.startPreview(Object object)
开启摄像头预览LivePusherContext.stopPreview(Object object)
关闭摄像头预览
# createLivePlayerContext
createLivePlayerContext()
创建 live-player 上下文 LivePlayerContext 对象。建议使用 ft.createSelectorQuery 获取 context 对象。
参数
string id
live-player 组件的 id
Object this
在自定义组件下,当前组件实例的this,以操作组件内 live-player 组件
返回值
LivePlayerContext
方法
LivePlayerContext.play(Object object)
播放LivePlayerContext.stop(Object object)
停止LivePlayerContext.mute(Object object)
静音LivePlayerContext.pause(Object object)
暂停LivePlayerContext.resume(Object object)
恢复
# 录音
# stopRecord
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38, 依赖扩展 SDK
stopRecord(Object object)
停止录音。
示例代码
ft.startRecord({
success(res) {
const tempFilePath = res.tempFilePath
}
})
setTimeout(function () {
ft.stopRecord() // 结束录音
}, 10000)
# startRecord
基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38, 依赖扩展 SDK
startRecord(Object object)
开始录音。当主动调用 ft.stopRecord,或者录音超过1分钟时自动结束录音。当用户离开小程序时,此接口无法调用。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数(当授权失败时,返回错误信息:fail unauthorized 用户未授予相机、录制音频权限) | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 录音文件的临时路径 |
示例代码
ft.startRecord({
success(res) {
const tempFilePath = res.tempFilePath
}
})
setTimeout(function () {
ft.stopRecord() // 结束录音
}, 10000)
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予麦克风权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请麦克风权限
- 接口授权失败(Android):
- 用户拒绝授权,会返回错误信息:unauthorized 用户未授予相机、录制音频权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized SDK被禁止了主动发起权限申请
# getRecorderManager
RecorderManager ft.getRecorderManager()
获取全局唯一的录音管理器 RecorderManager
返回值
RecorderManager
# RecorderManager
全局唯一的录音管理器
方法
RecorderManager.start(Object object)
开始录音参数
Object object
属性 类型 默认值 必填 说明 duration number 60000 否 录音的时长,单位 ms,最大值 600000(10 分钟) sampleRate number 8000 否 采样率(pc不支持) numberOfChannels number 2 否 录音通道数 encodeBitRate number 48000 否 编码码率,有效值见下表格 format string aac 否 音频格式,注:开发工具上因编码限制, format 不会生效,录制会固定生成 webm 文件 frameSize number 否 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3、pcm 格式。 audioSource string auto 否 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3、pcm 格式。 采样率与编码码率限制
每种采样率有对应的编码码率范围有效值,设置不合法的采样率或编码码率会导致录音失败,具体对应关系如下表。
采样率 编码码率 8000 16000 ~ 48000 11025 16000 ~ 48000 12000 24000 ~ 64000 16000 24000 ~ 96000 22050 32000 ~ 128000 24000 32000 ~ 128000 32000 48000 ~ 192000 44100 64000 ~ 320000 48000 64000 ~ 320000 sampleRate
合法值 说明 8000 8000 采样率 11025 11025 采样率 16000 16000 采样率 22050 22050 采样率 24000 24000 采样率 32000 32000 采样率 44100 44100 采样率 48000 48000 采样率 numberOfChannels
合法值 说明 1 1 个通道 2 2 个通道 format
合法值 说明 mp3 mp3 格式 aac aac 格式 wav wav 格式 PCM pcm 格式 audioSource
合法值 说明 auto 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用 buildInMic 手机麦克风,仅限 iOS headsetMic 有线耳机麦克风,仅限 iOS mic 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android camcorder 同 mic,适用于录制音视频内容,仅限 Android voice_communication 同 mic,适用于实时沟通,仅限 Android voice_recognition 同 mic,适用于语音识别,仅限 Android RecorderManager.pause()
暂停录音RecorderManager.resume()
继续录音RecorderManager.stop()
停止录音参数
Object object
属性 类型 说明 tempFilePath string 录音文件的临时路径 (本地路径) duration number 录音总时长,单位:ms fileSize number 录音文件大小,单位:Byte RecorderManager.onStart(function callback)
监听录音开始事件RecorderManager.onResume(function callback)
监听录音继续事件RecorderManager.onPause(function callback)
监听录音暂停事件RecorderManager.onStop(function callback)
监听录音结束事件
RecorderManager.onError(function callback)
监听录音错误事件RecorderManager.onInterruptionBegin(function callback)
监听录音因为受到系统占用而被中断开始事件。pause 事件在此事件后触发RecorderManager.onInterruptionEnd(function callback)
监听录音中断结束事件。在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。
示例代码
const recorderManager = ft.getRecorderManager()
recorderManager.onStart(() => {
console.log('recorder start')
})
recorderManager.onPause(() => {
console.log('recorder pause')
})
recorderManager.onStop((res) => {
console.log('recorder stop', res)
const { tempFilePath } = res
})
recorderManager.onFrameRecorded((res) => {
const { frameBuffer } = res
console.log('frameBuffer.byteLength', frameBuffer.byteLength)
})
const options = {
duration: 10000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: 'aac',
frameSize: 50
}
recorderManager.start(options)
注意
- 接口授权失败(iOS):
- 用户拒绝授权,会返回错误信息: unauthorized,用户未授予麦克风权限
- 宿主App禁止小程序主动申请权限,会返回错误信息:unauthorized disableauthorized,SDK被禁止申请麦克风权限
# 相机
# createCameraContext
createCameraContext()
创建 camera 上下文 CameraContext 对象。
返回值
CameraContext
# CameraContext.onCameraFrame
CameraFrameListener CameraContext.onCameraFrame(function callback)
获取 Camera 实时帧数据
# 参数
# function callback
回调函数
# 参数
# Object res
属性 | 类型 | 说明 |
---|---|---|
width | number | 图像数据矩形的宽度 |
height | number | 图像数据矩形的高度 |
data | ArrayBuffer | 图像像素点数据,一维数组,每四项表示一个像素点的 rgba |
# 返回值
# CameraFrameListener
注: 使用该接口需同时在 camera 组件属性中指定 frame-size。
# 示例代码
const context = ft.createCameraContext()
const listener = context.onCameraFrame((frame) => {
console.log(frame.data instanceof ArrayBuffer, frame.width, frame.height)
})
listener.start()
# CameraContext.setZoom
CameraContext.setZoom(Object object)
设置缩放级别
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
zoom | number | 是 | 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
属性 | 类型 | 说明 |
---|---|---|
zoom | number | 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 |
# CameraContext.startRecord
CameraContext.startRecord(Object object)
开始录像
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
timeoutCallback | function | 否 | 超过30s或页面 onHide 时会结束录像 | ||
success | function | 否 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 | ||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.timeoutCallback 回调函数
# 参数
属性 | 类型 | 说明 |
---|---|---|
tempThumbPath | string | 封面图片文件的临时路径 (本地路径) |
tempVideoPath | string | 视频的文件的临时路径 (本地路径) |
# CameraContext.stopRecord
CameraContext.stopRecord(Object object)
结束录像
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
compressed | boolean | false | 否 | 启动视频压缩,压缩效果同chooseVideo |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
属性 | 类型 | 说明 |
---|---|---|
tempThumbPath | string | 封面图片文件的临时路径 (本地路径) |
tempVideoPath | string | 视频的文件的临时路径 (本地路径) |
# CameraContext.takePhoto
CameraContext.takePhoto(Object object)
拍摄照片
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
quality | string | normal | 否 | 成像质量, high/normal/low | |
success | function | 否 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 | ||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
属性 | 类型 | 说明 |
---|---|---|
tempImagePath | string | 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png |
# CameraFrameListener.start
CameraFrameListener.start(Object object)
开始监听帧数据
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# CameraFrameListener.stop
CameraFrameListener.stop(Object object)
停止监听帧数据
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# 富文本
# EditorContext.blur
EditorContext.blur(Object object)
编辑器失焦,同时收起键盘。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.clear
EditorContext.clear(Object object)
清空编辑器内容
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.format
EditorContext.format(string name, string value)
修改样式
参数
string name
属性
string value
值
支持设置的样式列表
属性 | 值 |
---|---|
bold | |
italic | |
underline | |
strike | |
ins | |
script | sub / super |
header | H1 / H2 / h3 / H4 / h5 / H6 |
align | left / center / right / justify |
direction | rtl |
indent | -1 / +1 |
list | ordered / bullet / check |
color | hex color |
backgroundColor | hex color |
margin/marginTop/marginBottom/marginLeft/marginRight | css style |
padding/paddingTop/paddingBottom/paddingLeft/paddingRight | css style |
font/fontSize/fontStyle/fontVariant/fontWeight | css style |
lineHeight | css style |
letterSpacing | css style |
textDecoration | css style |
textIndent | css style |
wordWrap | css style |
wordBreak | css style |
whiteSpace | css style |
对已经应用样式的选区设置会取消样式。css style 表示 css 中规定的允许值。
# EditorContext.getContents
EditorContext.getContents(Object object)
获取编辑器内容
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
html | string | 带标签的HTML内容 |
text | string | 纯文本内容 |
delta | Object | 表示内容的delta对象 |
# EditorContext.getSelectionText
EditorContext.getSelectionText(Object object)
获取编辑器已选区域内的纯文本内容。当编辑器失焦或未选中一段区间时,返回内容为空。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
text | string | 纯文本内容 |
# EditorContext.insertDivider
EditorContext.insertDivider(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.insertImage
EditorContext.insertImage(Object object)
插入图片。
地址为临时文件时,获取的编辑器html格式内容中 <img> 标签增加属性 data-local,delta 格式内容中图片 attributes 属性增加 data-local 字段,该值为传入的临时文件地址。
开发者可选择在提交阶段上传图片到服务器,获取到网络地址后进行替换。替换时对于html内容应替换掉 <img> 的 src 值,对于 delta 内容应替换掉 insert { image: abc } 值。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
src | string | 是 | 图片地址,仅支持 http(s)、base64、云图片(2.8.0)、临时文件(2.8.3)。 | |
alt | string | 否 | 图像无法显示时的替代文本 | |
width | string | 否 | 图片宽度(pixels/百分比) | |
height | string | 否 | 图片高度 (pixels/百分比) | |
extClass | string | 否 | 添加到图片 img 标签上的类名 | |
data | Object | 否 | data 被序列化为 name=value;name1=value2 的格式挂在属性 data-custom 上 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
this.editorCtx.insertImage({
src: 'xx',
width: '100px',
height: '50px',
extClass: className
})
# EditorContext.insertText
EditorContext.insertText(Object object)
覆盖当前选区,设置一段文本
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 否 | 文本内容 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.redo
EditorContext.redo(Object object)
恢复
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.removeFormat
EditorContext.removeFormat(Object object)
清除当前选区的样式
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.scrollIntoView
EditorContext.scrollIntoView()
使得编辑器光标处滚动到窗口可视区域内。
# EditorContext.setContents
EditorContext.setContents(Object object)
初始化编辑器内容,html和delta同时存在时仅delta生效
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
html | string | 否 | 带标签的HTML内容 | |
delta | Object | 否 | 表示内容的delta对象 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# EditorContext.undo
EditorContext.undo(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# createMediaRecorder
创建 WebGL 画面录制器,可逐帧录制在 WebGL 上渲染的画面并导出视频文件
ft.createMediaRecorder(Object canvas, Object options)
参数
Object canvas
WebGL 对象,通过 SelectorQuery 获取到的 node 对象或通过 ft.createOffscreenCanvas 创建的离屏 WebGL Canvas 对象
Object options
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
duration | number | 600 | 否 | 指定录制的时长(s),到达自动停止。最大 7200,最小 5 |
videoBitsPerSecond | number | 1000 | 否 | 视频比特率(kbps),最小值 600,最大值 3000 |
gop | number | 12 | 否 | 视频关键帧间隔 |
fps | number | 24 | 否 | 视频 fps |
返回值
MediaRecorder
# MediaRecorder
方法
MediaRecorder.pause()
暂停录制MediaRecorder.resume()
恢复录制MediaRecorder.start()
开始录制MediaRecorder.stop()
结束录制