微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例


Posted in Javascript onNovember 22, 2016

本文介绍了微信小程序的开发,主要包括图片、录音、音频播放、音乐播放、视频、文件,具体如下:

图片:

wx.chooseImage(OBJECT)

从本地相册选择图片或使用相机拍照。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。

示例代码:

wx.chooseImage({
 count: 1, // 默认9
 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 success: function (res) {
  // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
  var tempFilePaths = res.tempFilePaths
 }
})

wx.previewImage(OBJECT)

预览图片。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码:

wx.previewImage({
 current: '', // 当前显示图片的http链接
 urls: [] // 需要预览的图片http链接列表
})

wx.getImageInfo(OBJECT)

获取图片信息

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

success返回参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码:

wx.getImageInfo({
 src: 'images/a.jpg',
 success: function (res) {
  console.log(res.width)
  console.log(res.height)
 }
})

wx.chooseImage({
 success: function (res) {
  wx.getImageInfo({
   src: res.tempFilePaths[0],
   success: function (res) {
    console.log(res.width)
    console.log(res.height)
   }
  })
 }
})

录音:

wx.startRecord(OBJECT)

开始录音。当主动调用wx.stopRecord,或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用wx.saveFile,在小程序下次启动时才能访问得到。

wx.stopRecord()

主动调用停止录音。

示例代码:

wx.startRecord({
 success: function(res) {
  var tempFilePath = res.tempFilePath 
 },
 fail: function(res) {
   //录音失败
 }
})
setTimeout(function() {
 //结束录音 
 wx.stopRecord()
}, 10000)

音频播放控制:

wx.playVoice(OBJECT)

开始播放语音,同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码:

wx.startRecord({
 success: function(res) {
  var tempFilePath = res.tempFilePath
  wx.playVoice({
   filePath: tempFilePath,
   complete: function(){
   }
  })
 }
})

wx.pauseVoice()

暂停正在播放的语音。再次调用wx.playVoice播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,需要先调用 wx.stopVoice。

示例代码:

wx.startRecord({
 success: function(res) {
  var tempFilePath = res.tempFilePath
   wx.playVoice({
   filePath: tempFilePath
  })

  setTimeout(function() {
    //暂停播放
   wx.pauseVoice()
  }, 5000)
 }
})

wx.stopVoice()

结束播放语音。

示例代码:

wx.startRecord({
 success: function(res) {
  var tempFilePath = res.tempFilePath
  wx.playVoice({
   filePath:tempFilePath
  })

  setTimeout(function(){
   wx.stopVoice()
  }, 5000)
 }
})

音乐播放控制:

wx.getBackgroundAudioPlayerState(OBJECT)
获取音乐播放状态。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 success返回参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

wx.getBackgroundAudioPlayerState({
  success: function(res) {
    var status = res.status
    var dataUrl = res.dataUrl
    var currentPosition = res.currentPosition
    var duration = res.duration
    var downloadPercent = res.downloadPercent
  }
})

wx.playBackgroundAudio(OBJECT)

播放音乐,同时只能有一首音乐正在播放。

OBJECT参数说明微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码

wx.playBackgroundAudio({
  dataUrl: '',
  title: '',
  coverImgUrl: ''
})

wx.pauseBackgroundAudio()
暂停播放音乐。

示例代码

wx.pauseBackgroundAudio()

wx.seekBackgroundAudio(OBJECT)
控制音乐播放进度。

OBJECT参数说明微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码

wx.seekBackgroundAudio({
  position: 30
})

wx.stopBackgroundAudio()

停止播放音乐。

示例代码

wx.stopBackgroundAudio()

wx.onBackgroundAudioPlay(CALLBACK)

监听音乐播放。

wx.onBackgroundAudioPause(CALLBACK)
监听音乐暂停。

wx.onBackgroundAudioStop(CALLBACK)

监听音乐停止。

文件:

wx.saveFile(OBJECT)

保存文件到本地。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

示例代码:

wx.startRecord({
 success: function(res) {
  var tempFilePath = res.tempFilePath
  wx.saveFile({
   tempFilePath: tempFilePath,
   success: function(res) {
    var savedFilePath = res.savedFilePath
   }
  })
 }
})

wx.getSavedFileList(OBJECT)

获取本地已保存的文件列表

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 success返回参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 fileList中的项目说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

wx.getSavedFileList({
 success: function(res) {
  console.log(res.fileList)
 }
})

wx.getSavedFileInfo(OBJECT)

获取本地文件的文件信息

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 success返回参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

wx.getSavedFileInfo({
 filePath: 'wxfile://somefile', //仅做示例用,非真正的文件路径
 success: function(res) {
  console.log(res.size)
  console.log(res.createTime)
 }
})

wx.removeSavedFile(OBJECT)

删除本地存储的文件

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

wx.getSavedFileList({
 success: function(res) {
  if (res.fileList.length > 0){
   wx.removeSavedFile({
    filePath: res.fileList[0].filePath,
    complete: function(res) {
     console.log(res)
    }
   })
  }
 }
})

wx.openDocument(OBJECT)

新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例 

示例代码

wx.downloadFile({
 url: 'http://example.com/somefile.pdf',
 success: function (res) {
  var filePath = res.tempFilePath 
  wx.openDocument({
   filePath: filePath,
   success: function (res) {
    console.log('打开文档成功')
   }
  })
 }
})

视频:

wx.chooseVideo(OBJECT)

拍摄视频或从手机相册中选视频,返回视频的临时文件路径。

OBJECT参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

返回参数说明:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。

示例代码:

<view class="container">
  <video src="{{src}}"></video>
  <button bindtap="bindButtonTap">获取视频</button>
</view>
Page({
  bindButtonTap: function() {
    var that = this
    wx.chooseVideo({
      sourceType: ['album','camera'],
      maxDuration: 60,
      camera: ['front','back'],
      success: function(res) {
        that.setData({
          src: res.tempFilePath
        })
      }
    })
  }
})

音频组件控制:

wx.createAudioContext(audioId)

创建并返回 audio 上下文 audioContext 对象

audioContext

audioContext 通过 audioId 跟一个 audio 组件绑定,通过它可以操作一个 audio 组件。

audioContext对象的方法列表:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

<!-- audio.wxml -->
<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: function (e) {
  // 使用 wx.createAudioContext 获取 audio 上下文 context
  this.audioCtx = wx.createAudioContext('myAudio')
 },
 data: {
  src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
 },
 audioPlay: function () {
  this.audioCtx.play()
 },
 audioPause: function () {
  this.audioCtx.pause()
 },
 audio14: function () {
  this.audioCtx.seek(14)
 },
 audioStart: function () {
  this.audioCtx.seek(0)
 }
})

视频组件控制:

wx.createVideoContext(videoId)

创建并返回 video 上下文 videoContext 对象

videoContext

videoContext 通过 videoId 跟一个 video 组件绑定,通过它可以操作一个 video 组件。

videoContext对象的方法列表:微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

 示例代码:

<view class="section tc">
 <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"  enable-danmu danmu-btn controls></video>
 <view class="btn-area">
  <input bindblur="bindInputBlur"/>
  <button bindtap="bindSendDanmu">发送弹幕</button>
 </view>
</view>
function getRandomColor () {
 let rgb = []
 for (let i = 0 ; i < 3; ++i){
  let color = Math.floor(Math.random() * 256).toString(16)
  color = color.length == 1 ? '0' + color : color
  rgb.push(color)
 }
 return '#' + rgb.join('')
}

Page({
 onReady: function (res) {
  this.videoContext = wx.createVideoContext('myVideo')
 },
 inputValue: '',
 bindInputBlur: function(e) {
  this.inputValue = e.detail.value
 },
 bindSendDanmu: function () {
  this.videoContext.sendDanmu({
   text: this.inputValue,
   color: getRandomColor()
  })
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
XHTML下,JS浮动代码失效的问题
Nov 12 Javascript
javascript实现文字图片上下滚动的具体实例
Jun 28 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
May 05 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 Javascript
微信小程序如何使用云开发
May 17 Javascript
vue渲染方式render和template的区别
Jun 05 Javascript
低门槛开发iOS、Android、小程序应用的前端框架详解
Oct 16 Javascript
详解js中Json的语法与格式
Nov 22 #Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 #Javascript
javascript入门之string对象【新手必看】
Nov 22 #Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 #Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 #Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 #Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 #Javascript
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
B2K与车机的中波PK
2021/03/02 无线电
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
PHP遍历数组的方法汇总
2015/04/30 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
python fabric实现远程操作和部署示例
2014/03/25 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Python如何输出百分比
2020/07/31 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
怎样从/向数据文件读/写结构
2014/11/23 面试题
中文师范生自荐信
2014/01/30 职场文书
3的组成教学反思
2014/04/30 职场文书
六年级小学生评语
2014/12/26 职场文书
开幕式邀请函
2015/01/31 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书