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


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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
用jquery实现下拉菜单效果的代码
Jul 25 Javascript
让textarea自动调整大小的js代码
Apr 12 Javascript
使用JavaScript 实现各种跨域的方法
May 08 Javascript
JavaScript判断密码强度(自写代码)
Sep 06 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
jquery实现动态画圆
Dec 04 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
Apr 06 Javascript
jQuery validate插件功能与用法详解
Dec 15 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
JavaScript格式化json和xml的方法示例
Jan 22 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
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python itertools模块详解
2015/05/09 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
python装饰器练习题及答案
2019/11/01 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
蔬菜基地的创业计划书
2014/01/06 职场文书
打架检讨书100字
2014/01/19 职场文书
业绩考核岗位职责
2014/02/01 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
庆国庆活动总结
2014/08/28 职场文书
收银员岗位职责范本
2015/04/07 职场文书
红色影片观后感
2015/06/18 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
导游词之山东红叶谷
2019/10/31 职场文书