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


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 相关文章推荐
HTML中事件触发列表与解说
Jul 09 Javascript
IE8 浏览器Cookie的处理
Jan 31 Javascript
JQuery 遮罩层实现(mask)实现代码
Jan 09 Javascript
基于jquery的超简单上下翻
Apr 20 Javascript
js正则表达式匹配数字字母下划线等
Apr 14 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
JS实现1000以内被3或5整除的数字之和
Feb 18 Javascript
JavaScript 拖拽实例代码
Sep 21 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
js实现无缝轮播图特效
May 09 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
JavaScript中isPrototypeOf函数
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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
PHP 采集程序 常用函数
2008/12/18 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
python 获取网页编码方式实现代码
2017/03/11 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
python Kmeans算法原理深入解析
2019/08/23 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
日本语毕业生自荐信
2014/02/01 职场文书
作弊检讨书1000字
2014/02/01 职场文书
房产买卖委托公证书
2014/04/04 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
首次购房证明
2015/06/19 职场文书
小程序自定义轮播图圆点组件
2022/06/25 Javascript