实例:一个简单的播放器效果。
实现的功能:
1点击播放按钮。音频开始播放。
2播放的同时,进度条在不停的更新走动
3点击暂停按钮,音频停止播放
4当音频播放完毕以后,进度条再次回到原点
5当拖滑动滑块以后,松开滑块,进度条继续走动,音频从滑块松开的位置播放,直至播放结束
html:

<!--进度条-->
<viewclass="progresswrap">
<sliderclass="drag"step="10"value="{{curTimeVal}}"max="{{duration}}"
backgroundColor="#373636"activeColor="#FF1744"bindchange="slideBar"/>
</view>
<!--控制按钮-->
<viewclass="btns">
<viewbindtap='play'><imagesrc="{{playSrc}}"></image></view>
<viewbindtap='pause'><imagesrc="{{pauseSrc}}"></image></view>
</view>

JS:

const innerAudioContext = wx.createInnerAudioContext();
Page({
duration:0,
curTimeVal:0,
})
onLoad: function:(){
wx.request({
url: utils.baseUrl + "/message/get?sessionID=" + sessionID + "&id=" + id,
success: function (res) {
var resData = res.data.data
var audioSrc ="https://www.rujian.vip"+resData.resourceURL;
that.setData({
contResponseArr: resData,
audioSrc: audioSrc
})
innerAudioContext.src = audioSrc;
}
})
},
play: function (e) {
var that=this;
innerAudioContext.play();
innerAudioContext.onPlay((res) =>
that.updateTime(that)
}) //没有这个事件触发,无法执行updatatime
}
pause:function(){
innerAudioContext.pause();
},
updateTime:function(that){
innerAudioContext.onTimeUpdate((res) => {
//更新时把当前的值给slide组件里的value值。slide的滑块就能实现同步更新
console.log("duratio的值:", innerAudioContext.duration)
that.setData({
duration: innerAudioContext.duration.toFixed(2) *100,
curTimeVal: innerAudioContext.currentTime.toFixed(2) *100,
})})
//播放到最后一秒
if (innerAudioContext.duration.toFixed(2) - innerAudioContext.currentTime.toFixed(2) <= 0) {
that.setStopState(that)
}innerAudioContext.onEnded(() => {
that.setStopState(that)
})
},
//拖动滑块
slideBar:function(e){
let that=this;
var curval=e.detail.value; //滑块拖动的当前值
innerAudioContext.seek(curval); //让滑块跳转至指定位置
innerAudioContext.onSeeked((res)=>{
this.updateTime(that) //注意这里要继续出发updataTime事件,
})},
setStopState:function(that){
that.setData({
curTimeVal: 0
})
innerAudioContext.stop()
}

如果你也想开发一款属于自己的微信小程序,可以通过第三方专业开发平台,来帮助你实现开发需求:厦门在乎科技-专注小程序、app、网站开发

小程序实现播放器功能 小程序播放器怎么实现相关推荐

  1. 程序| 只要使用这个功能,程序运行速度瞬间提升,高到离谱!

    hello !我是小小,今天是本周的第二篇,本篇将会着重的讲解关于Java并行流的知识 前言 在之前如果需要处理集合需要先手动分成几部分,然后为每部分创建线程,最后在合适的时候合并,这是手动处理并行集 ...

  2. 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

    文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...

  3. 小程序实现播放器功能

    实例:一个简单的播放器效果. 实现的功能: 1点击播放按钮.音频开始播放. 2播放的同时,进度条在不停的更新走动 3点击暂停按钮,音频停止播放 4当音频播放完毕以后,进度条再次回到原点 5当拖滑动滑块 ...

  4. MyBatis拦截器原理探究MyBatis拦截器原理探究

    MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能.那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis拦截 ...

  5. MyBatis拦截器原理探究MyBatis拦截器原理探究 1

    MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能.那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis拦截 ...

  6. python实现音乐播放和下载小程序功能

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  7. 基于微信小程序java音乐播放器毕业设计论文/程序代码

    摘  要 5G时代已经慢慢的融入了我们的日常生活,随着国家的通信政策以及各大运营商的宣传的影响,5G手机已经随处可见,面对全球信息.技术空前高速发展,信息高速化发展更是社会进步的一个标志.在全球信息化 ...

  8. 微信小程序录音功能的实现:有录音、暂停、继续、停止 、播放等功能。

    微信小程序录音功能的实现:有录音.暂停.继续.停止 .播放等功能. 网上找了半天都没找到合适的demo,很多就不完全,看着都有点难受,看了官方的api ,干脆自己写一个 界面如下图 看了网上大部分人写 ...

  9. (已更新)谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能

    看名字就知道啦,这是一个谁是卧底的小程序源码 游戏规则: 谁是卧底是一款线下聚会的游戏,考验口才和脑力的同时,也能活跃气氛. 游戏人数为4-12人,游戏角色包括平民,卧底,白板可供用户选择! 游戏步骤 ...

最新文章

  1. 敏捷软件开发实践——估算与计划(01)
  2. js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable
  3. java 压缩技术_Java压缩技术(三) ZIP解压缩——Java原生实现
  4. 19 Error handling and Go go语言错误处理
  5. recycleview 嵌套高度问题_RecyclerView嵌套子RecyclerView无法正常显
  6. hdu 5112 A Curious Matt
  7. 模块化加载_Java9模块化的类加载机制实现剖析
  8. Iceberg 在基于 Flink 的流式数据入库场景中的应用
  9. 十六进制报文用wireshark打开
  10. criteria 排序_产品需求挖掘与排序的2大利器:文本挖掘与KANO模型
  11. 797. 差分(有图解)
  12. python音频实时频谱分析_基于python的音频设计及频谱分析
  13. POJ 1873 The Fortified Forest
  14. 【二进制】Special Numbers
  15. word转pdf公式乱码_word转换pdf公式乱码怎么办
  16. 定积分数值计算(C++实现)
  17. 技术与管理看看华为怎么说
  18. ps色彩范围调暗图片局部
  19. 域名被劫持应该如何处理
  20. General Algorithm

热门文章

  1. 【文件包含漏洞】——文件包含漏洞进阶_日志文件包含利用
  2. ncode控件使用总结
  3. 阿里云轻量应用服务器配置frp内网穿透通过Mac远控Win10主机配置指南
  4. matlab潮汐图,使用MATLAB拟合工具箱进行潮汐调和分析
  5. React面试题整理
  6. WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(一)
  7. 三只小猪称体重有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?用条件if嵌套法和三目运算符法
  8. 神经网络所需算力估算
  9. 华为手机 微信小程序 input输入框上移
  10. vue+elementUI轮播视频