UNPKG

swan-docs

Version:
602 lines (449 loc) 19.5 kB
--- title: 媒体 header: develop nav: api sidebar: media --- 图片 ----- ### 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)| **示例:** ```js 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 | 否 | 接口调用结束的回调函数(调用成功、失败都会执行)| **示例:** ```js swan.previewImage({ current: '', // 当前显示图片的http链接 urls: [], // 需要预览的图片http链接列表 fail: function (err) { console.log('错误码:' + err.errCode); console.log('错误信息:' + err.errMsg); } }); ``` **Bug & Tip** 1、bug: 开发者工具 1.8.0 current 参数为当前显示图片的索引值。 ### getImageInfo **解释:**获取图片信息。 **参数:**Object **Object参数说明:** |参数 |类型| 必填 | 说明| |---- | ---- | ---- | ----| |src |String | 是 | 图片的路径,可以是相对路径、临时文件路径或存储文件路径,不支持网络图片| |success| Function | 否 | 接口调用成功的回调函数| |fail | Function | 否 | 接口调用失败的回调函数| |complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行)| **success返回参数说明:** |参数 |类型 | 说明| |---- | ---- | ---- | |width | Number | 图片宽度(单位:px)| |height | Number | 图片高度(单位:px)| |path | String | 返回图片的本地路径| **示例:** ```js 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 | 调用结果| **示例:** ```js 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 后会自动停止录音,最大值 60000010 分钟),默认值 600001 分钟)| |sampleRate |Number |否 | 采样率,有效值 8000/16000/44100 | |numberOfChannels |Number |否 | 录音通道数,有效值 1/2 | |encodeBitRate |Number |否 | 编码码率,有效值见下表格 | |format |String |否 | 音频格式,有效值 aac/pcm | **其中,采样率和码率有一定要求,具体有效值如下:** |采样率 | 编码码率 | |---- | ---- | |8000 | 16000 ~ 48000| |16000| 24000 ~ 96000| |44100| 64000 ~ 320000| **onStop(callback) 回调结果说明:** |属性 | 类型 | 说明 | |---- | ---- | ---- | |tempFilePath |String | 录音文件的临时路径 | **onError(callback) 回调结果说明:** |属性 | 类型 | 说明 | |---- | ---- | ---- | |errMsg |String | 错误信息 | **示例:** ```javascript 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 | 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 | **示例:** ```javascript 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 操作事件 | **示例:** ```javascript 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,在智能小程序下次启动时才能访问得到。** **示例:** ```html <button bind:tap="chooseVideo" type="primary">点击选择视频</button> <video src="{{src}}" controls></video> ``` ```javascript 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 | 调用结果| **示例:** ```js 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 | 无 | 退出全屏| **示例:** ```html <view> <video id="myVideo" src="https://example.baidu.com/xxxx"></video> </view> ``` ```js 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 | 否 | 接口调用结束的回调函数(调用成功、失败都会执行)|