百度智能小程序API 媒体
图片
chooseImage
解释:从本地相册选择图片或使用相机拍照。
参数:Object
Object参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
count | Number | 否 | 最多可以选择的图片张数,默认 9 |
sizeType | String Array | 否 | original 原图,compressed 压缩图,默认二者都有 |
sourceType | String Array | 否 | album 从相册选图,camera 使用相机,默认二者都有 |
success | Function | 是 | 成功则返回图片的本地文件路径列表 tempFilePaths |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
注意:文件的临时路径,在智能小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 swan.saveFile,在智能小程序下次启动时才能访问得到。
success返回参数说明:
参数 | 类型 | 说明 |
---|---|---|
tempFilePaths | String Array | 图片的本地文件路径列表 |
tempFiles | Object Array | 图片的本地文件列表,每一项是一个 File 对象 |
tempFiles 对象结构如下:
字段 | 类型 | 说明 |
---|---|---|
path | String | 本地文件路径 |
size | Number | 本地文件大小(单位:B) |
示例:
swan.chooseImage({
count: 1,
success: function (res) {
// 成功则返回图片的本地文件路径列表 tempFilePaths
console.log(res.tempFilePaths);
// 文件列表对象
console.log(res.tempFiles);
},
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
previewImage
解释:预览图片。
参数:Object
Object参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
current | String | 否 | 当前显示图片的链接,不填则默认为 urls 的第一张 |
urls | String Array | 是 | 需要预览的图片链接列表 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例:
swan.previewImage({
current: '', // 当前显示图片的http链接
urls: [], // 需要预览的图片http链接列表
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
Bug & Tip:swan.previewImage在真机和工具是有diff,工具1.8.0上有bug,工具中默认展示第一张图片传入的是索引,真机上需要传图片url
getImageInfo
解释:获取图片信息。
参数:Object
Object参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
src | String | 是 | 图片的路径,可以是相对路径、临时文件路径或存储文件路径,不支持网络图片 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数 | 类型 | 说明 |
---|---|---|
width | Number | 图片宽度(单位:px) |
height | Number | 图片高度(单位:px) |
path | String | 返回图片的本地路径 |
示例:
swan.getImageInfo({
src: '/xxx/xxx.jpg',
success: function (res) {
// 成功则返回图片高,宽,本地路径
console.log(res.width);
console.log(res.height);
console.log(res.path);
},
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
saveImageToPhotosAlbum
解释:保存图片到系统相册。需要用户授权
参数:Object
Object参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | String | 是 | 图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errMsg | String | 调用结果 |
示例:
swan.saveImageToPhotosAlbum({
'filePath': '/xxx/xxx.jpg',
success: function (res) {
// 成功则返回图片本地路径
console.log(res.filePath);
},
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
录音管理
getRecorderManager
解释:获取全局唯一的录音管理器recorderManager。
参数:无
recorderManager 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
start | options | 开始录音 |
pause | 暂停录音 | |
resume | 继续录音 | |
stop | 停止录音 | |
onStart | callback | 录音开始事件 |
onPause | callback | 录音暂停事件 |
onStop | callback | 录音停止事件,会回调文件地址 |
onError | callback | 录音错误事件, 会回调错误信息 |
start(options) 说明:
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
duration | Number | 否 | 指定录音的时长,(单位:ms) ,如果传入了合法的 duration ,在到达指定的 duration 后会自动停止录音,最大值 600000(10 分钟),默认值 60000(1 分钟) |
sampleRate | Number | 否 | 采样率,有效值 8000/16000/44100 |
numberOfChannels | Number | 否 | 录音通道数,有效值 1/2 |
encodeBitRate | Number | 否 | 编码码率,有效值见下表格 |
format | String | 否 | 音频格式,有效值 aac |
其中,采样率和码率有一定要求,具体有效值如下:
采样率 | 编码效率 |
---|---|
8000 | 16000 ~ 48000 |
16000 | 24000 ~ 96000 |
44100 | 64000 ~ 320000 |
onStop(callback) 回调结果说明:
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | String | 录音文件的临时路径 |
onError(callback) 回调结果说明:
属性 | 类型 | 说明 |
---|---|---|
errMsg | String | 错误信息 |
示例:
const recorderManager = swan.getRecorderManager()
recorderManager.onStart(function() {
// 开始录音事件
console.log('recorder start')
});
recorderManager.onPause(function() {
// 暂停录音事件
console.log('recorder pause')
});
recorderManager.onStop(function() {
// 停止录音事件
console.log('recorder stop', res)
const { tempFilePath } = res
});
const options = {
duration: 10000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: 'aac'
};
recorderManager.start(options);
背景音频管理播放
getBackgroundAudioManager
解释:获取全局唯一的背景音频管理器 backgroundAudioManager。
参数:无
backgroundAudioManager 对象的属性列表:
属性 | 类型 | 说明 | 只读 |
---|---|---|---|
src | String | 音频的数据链接,用于直接播放。 | 否 |
startTime | Number | 开始播放的位置(单位:s),默认 0 | 否 |
autoplay | Boolean | 是否自动开始播放,默认 false | 否 |
loop | Boolean | 是否循环播放,默认 false | 否 |
duration | Number | 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 | 是 |
currentTime | Number | 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 | 是 |
paused | Boolean | 当前是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 | 是 |
buffered | Number | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 | 是 |
title | String | 音频标题,用于做原生音频播放器音频标题。原生音频播放器中的分享功能,分享出去的卡片标题,也将使用该值。 | 否 |
epname | String | 专辑名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。 | 否 |
singer | String | 歌手名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。 | 否 |
coverImgUrl | String | 封面图url,用于做原生音频播放器背景图。原生音频播放器中的分享功能,分享出去的卡片配图及背景也将使用该图。 | 否 |
backgroundAudioManager 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
play | 无 | 播放 |
pause | 无 | 暂停 |
stop | 无 | 停止 |
seek | position | 跳转到指定位置(单位:s) |
onCanplay | callback | 音频进入可以播放状态,但不保证后面可以流畅播放 |
onPlay | callback | 音频播放事件 |
onPause | callback | 音频暂停事件 |
onStop | callback | 音频停止事件 |
onEnded | callback | 音频自然播放结束事件 |
onTimeUpdate | callback | 音频进度更新事件 |
onError | callback | 音频播放错误事件 |
onPrev | callback | 用户在系统音乐播放面板点击上一曲事件(iOS only) |
onNext | callback | 用户在系统音乐播放面板点击下一曲事件(iOS only) |
onWaiting | callback | 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 |
示例:
const backgroundAudioManager = swan.getBackgroundAudioManager();
backgroundAudioManager.title = '此时此刻';
backgroundAudioManager.epname = '此时此刻';
backgroundAudioManager.singer = '许巍';
backgroundAudioManager.coverImgUrl = 'xxx';
backgroundAudioManager.src = 'xxx';
音频组件控制
createInnerAudioContext
解释:创建并返回内部 audio 上下文 innerAudioContext 对象。
参数:无
innerAudioContext 对象的属性列表:
方法 | 参数 | 说明 | 只读 |
---|---|---|---|
src | String | 音频的数据链接,用于直接播放。 | 否 |
startTime | Number | 开始播放的位置(单位:s),默认 0 | 否 |
autoplay | Boolean | 是否自动开始播放,默认 false | 否 |
loop | Boolean | 是否循环播放,默认 false | 否 |
duration | Number | 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 | 是 |
currentTime | Number | 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 | 是 |
paused | Boolean | 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 | 是 |
buffered | Number | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 | 是 |
volume | Number | 音量。范围 0~1。 | 否 |
innerAudioContext 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
play | 无 | 播放 |
pause | 无 | 暂停 |
stop | 无 | 停止 |
seek | position | 跳转到指定位置(单位:s) |
destroy | 无 | 销毁当前实例 |
onCanplay | callback | 音频进入可以播放状态,但不保证后面可以流畅播放 |
onPlay | callback | 音频播放事件 |
onPause | callback | 音频暂停事件 |
onStop | callback | 音频停止事件 |
onEnded | callback | 音频自然播放结束事件 |
onTimeUpdate | callback | 音频进度更新事件 |
onError | callback | 音频播放错误事件 |
onWaiting | callback | 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 |
onSeeking | callback | 音频进行 seek 操作事件 |
onSeeked | callback | 音频完成 seek 操作事件 |
示例:
const innerAudioContext = swan.createInnerAudioContext();
innerAudioContext.src = 'xxx';
innerAudioContext.autoplay = true;
innerAudioContext.seek({
position: 10
});
innerAudioContext.onPlay(function (res) {
console.log('开始播放')
});
视频
chooseVideo
解释:拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
参数:Object
Object参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
sourceType | String Array | 否 | album 从相册选图,camera 使用相机,默认二者都有
|
compressed | Boolean | 否 | 是否压缩所选的视频源文件,默认值为true,需要压缩 |
maxDuration | Number | 否 | 拍摄视频最长拍摄时间,(单位:s)。最长支持 60 秒 |
success | Function | 是 | 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数 | 说明 |
---|---|
tempFilePath | 选定视频的临时文件路径 |
duration | 选定视频的时间长度 (单位:s) |
size | 选定视频的数据量大小(单位:B) |
height | 返回选定视频的长 |
width | 返回选定视频的宽 |
注:文件的临时路径,在智能小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 swan.saveFile,在智能小程序下次启动时才能访问得到。
示例:
<button bind:tap="chooseVideo" type="primary">点击选择视频</button>
<video src="{{src}}" controls></video>
Page({
data: {
sourceType: ['album', 'camera'],
compressed: false,
maxDuration: 60,
src: ''
},
chooseVideo() {
let self = this;
swan.chooseVideo({
sourceType: this.getData('sourceType'),
compressed: this.getData('compressed'),
maxDuration: this.getData('maxDuration'),
success: function (res) {
// 成功返回选定视频的临时文件路径
self.setData('src', res.tempFilePath);
},
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
}
});
saveVideoToPhotosAlbum
解释:保存视频到系统相册。需要用户授权。
参数:Object
Object参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filePath | String | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errMsg | String | 调用结果 |
示例:
swan.saveVideoToPhotosAlbum({
'filePath': 'bdfile://xxx',
success: function (res) {
// 成功返回视频文件路径
console.log(res.filePath);
},
fail: function (err) {
console.log('错误码:' + err.errCode);
console.log('错误信息:' + err.errMsg);
}
});
视频组件控制
createVideoContext
解释:创建并返回 video 上下文 videoContext 对象。通过 videoId 跟一个 video 组件绑定,通过它可以操作一个 video 组件。
参数:videoId
videoContext 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
play | 无 | 播放 |
pause | 无 | 暂停 |
seek | position | 跳转到指定位置(单位:s) |
sendDanmu | danmu | 发送弹幕,danmu 包含两个属性 text、color。 |
requestFullScreen | 无 | 进入全屏 |
exitFullScreen | 无 | 退出全屏 |
示例:
<view>
<video id="myVideo" src="https://example.baidu.com/xxxx" rel="external nofollow" ></video>
</view>
const myVideo = swan.createVideoContext('myVideo');
myVideo.play();
直播组件控制
createLivePlayerContext
解释:操作对应的 <live-player/> 组件。 创建并返回 live-player 上下文 LivePlayerContext 对象。
参数:domId
livePlayerContext 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
play | Object | 播放 |
stop | Object | 停止 |
mute | Object | 静音 |
requestFullScreen | Object | 进入全屏 |
exitFullScreen | Object | 退出全屏 |
requestFullScreen 的 Object 参数列表:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
direction | Number | 是 | 有效值为 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度) |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
其他方法的 Object 参数列表:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
相机组件控制
createCameraContext
解释:创建并返回 camera 上下文 cameraContext对象,cameraContext 与页面的 camera 组件绑定,一个页面只能有一个 camera,通过它可以操作对应的组件
参数:无
cameraContext 对象的方法列表:
方法 | 参数 | 说明 |
---|---|---|
takePhoto | Object | 拍照,可指定质量,成功则返回图片 |
startRecord | Object | 开始录像 |
stopRecord | Object | 结束录像,成功则返回封面与视频 |
takePhoto 的 Object 参数列表:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
quality | String | 否 | 成像质量,值为high, normal, low,默认normal |
success | Function | 否 | 接口调用成功的回调函数 ,res = { tempImagePath } |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
startRecord 的 Object 参数列表:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
stopRecord 的 Object 参数列表:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 ,res = { tempThumbPath, tempVideoPath } |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |