微信小程序实现音频文件播放进度的实例代码


Posted in Javascript onMarch 02, 2020

问题描述

在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现。

解决方案

首先用.wxml与 .wmss 代码实现进度条的效果,再通过 .js 文件控制进度条的进度和进度条的时间显示。

.wxml中(播放进度结构的代码):

<view class="content-play-progress">
<text>{{play.currentTime}}</text>
<view>
<slider activeColor="#d33a31" block-size="12" backgroundColor="#dadada" value="{{play.percent}}"/>
</view>
<text>{{play.duration}}</text>
</view>

在上述代码中,第五行用到了slider组件,其值为播放进度 play.percent。

.wxss中(播放进度样式的代码) :

.content-play-progress{
display: flex;
align-items: center;
margin: 0 35rpx;
font-size: 9pt;
text-align: center;
}
.content-play-progress>view{
flex: 1;
}

保存上述代码后,运行程序,效果如图:

微信小程序实现音频文件播放进度的实例代码 

图 1   微信小程序进度条的实现

.js中(控制进度条的进度和时间的代码) :

onReady: function(){
this.audioCtx=wx.createInnerAudioContext()
var that=this
//播放失败检测
this. audioCtx.onError(function(){
console.log( ‘ 播放失败: ' +that.audioCtx.src)
})
//播放完成自动换下一曲
this. audioCtx.OnEnded(function(){
that.next()
})
//自动更新播放进度
this. audioCtx.onPlay(function(){
this. audioCtx.onTimeUpdate(function(){
that.setData({
‘ play.duration ' : formatTime(that.audioCtx.duration),
‘ play.currrentTime ' : formatTime(that.audioCtx. currrentTime),
‘ play.percent ' : that.audioCtx. currrentTime /
that.audioCtx.duration*100
})
})
//默认选择第一曲
T his.setMusic(0)
//格式化时间
function formatTime(time){
var minute=Math.floor(time/60)%60;
var second=Math.floor(time)%60
return (minute<10? ' 0 ' +minute:minute)+ ' : ' +
(second<10? ' 0 ' +second:second)
}
})
}

上述代码中,通过调用audioCtx的 onTimeUpdate() 的方法,获取音视频状态信息,并通过 formatTime() 函数处理时间格式,最后渲染到页面实现实时更新效果,效果如图:

微信小程序实现音频文件播放进度的实例代码 

图 2   微信小程序进度条的滑动

在slider组件上绑定 bindchange 事件,可以实现滑动进度条调节音视频文件播放进度,代码示例 :

<slider bindchange= ” sliderChange ” activeColor= ” #d33a31 ” block-size= ” 12 ” backgroundColor= ” #dadada ” value= ” {{play.percent}} ” / >

在.js文件中编写 sliderChange 函数获取用户当前选择的进度,将时间通过 audioCtx 对象的 seek() 方法进行设置,代码示例:

sliderChange: function(e){
var second=e.detail.value* that.audioCtx.duration/100
that.audioCtx.seek(secend)
},

总结

到此这篇关于微信小程序实现音频文件播放进度的实例代码的文章就介绍到这了,更多相关小程序音频文件播放进度内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 异步调用框架 (Part 4 - 链式调用)
Aug 04 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
Vue项目中ESlint规范示例代码
Jul 04 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
JS防抖和节流实例解析
Sep 24 Javascript
详解Angular cli配置过程记录
Nov 07 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 #Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 #Javascript
vue学习笔记之Vue中css动画原理简单示例
Feb 29 #Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 #Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 #Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 #Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 #Javascript
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
php计算税后工资的方法
2015/07/28 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
vue.js学习之UI组件开发教程
2017/07/03 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
js实现缓动动画
2020/11/25 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
详解Python中find()方法的使用
2015/05/18 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
造价工程师个人求职信
2013/09/21 职场文书
班队活动设计方案
2014/01/30 职场文书
党员党性分析材料
2014/02/17 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
师德师风个人总结
2015/02/06 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
入党转正申请书范文
2019/05/20 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL