微信小程序> 小程序实现语音播放功能

小程序实现语音播放功能

浏览量:2976 时间: 来源:元气少女晴天

html结构

view class="output-audio" s-for="{{audioArr}}" s-for-item="v" s-for-index="key"!-- 默认状态isplay=F --view class="audio" s-if="{{!v.isplay}}" bindtap="play" data-key="{{key}}" data-id="{{v.id}}" data-isplay="{{v.isplay}}"image class="ico" src="/images/yin.png"/imageimage class="ico2" src="/images/xian.png"/imagetext class="time"{{v.time}}/text/view!-- 正在播放状态isplay=T --view class="audio audio2" s-else bindtap="stop" data-key="{{key}}" data-id="{{v.id}}" data-isplay="{{v.isplay}}"image class="ico" src="/images/yin.png"/imageimage class="ico2" src="/images/xian.gif"/imagetext class="time"{{v.time}}/text/view/view

css样式

page{ background: #f0f0f0;}.audio{ width: 60%; padding: 20rpx;margin: 10rpx 30rpx; border-radius: 10rpx;background-color: #25D9CE;border: 1px solid #f0f0f0; overflow: hidden; }.ico{ width: 30rpx; height: 45rpx; float: left;}.ico2{width: 60rpx; height: 23rpx;margin-left: 20rpx;margin-top: 20rpx;}.time{ float: right; font-size: 30rpx;color: #fff;margin-top: 5rpx;}

JS方法

const myaudio = swan.createInnerAudioContext();Page({    data: {        audioArr: [            {                id: '000',                src: 'http://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3',                time: '1:20"',                isplay: false            },            {                id: '001',                src: 'http://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3',                time: '2:20"',                isplay: false            },        ]    },    //音频播放      play: function (e) {        var that = this,            id = e.currentTarget.dataset.id,            key = e.currentTarget.dataset.key,            audioArr = that.data.audioArr,            vidSrc = audioArr[key].src;        myaudio.src = vidSrc;        myaudio.autoplay = true;        //切换显示状态        for (var i = 0; i  audioArr.length; i++) {            audioArr[i].isplay = false;        }        var isplay = 'audioArr[' + key + '].isplay'//必须把数组变成字符串        this.setData({            [isplay]: true        })        //开始监听        myaudio.onPlay(() = {            that.setData({                audioArr: audioArr            })        })        //结束监听        myaudio.onEnded(() = {            audioArr[key].isplay = false;            that.setData({                audioArr: audioArr,            })        })    },    // 音频停止    stop: function (e) {        var that = this,            id = e.currentTarget.dataset.id,            key = e.currentTarget.dataset.key,            audioArr = that.data.audioArr,            vidSrc = audioArr[key].src;        myaudio.src = vidSrc;        //切换显示状态        for (var i = 0; i  audioArr.length; i++) {            audioArr[i].isplay = false;        }        audioArr[key].isplay = false;        myaudio.stop();        //停止监听        myaudio.onStop(() = {            audioArr[key].isplay = false;            that.setData({                audioArr: audioArr,            })        })        //结束监听        myaudio.onEnded(() = {            audioArr[key].isplay = false;            that.setData({                audioArr: audioArr,            })        })    },    onLoad: function () {        // 监听页面加载的生命周期函数    },    onReady: function () {        // 监听页面初次渲染完成的生命周期函数    },    onShow: function () {        // 监听页面显示的生命周期函数    },    onHide: function () {        // 监听页面隐藏的生命周期函数    },    onUnload: function () {        // 监听页面卸载的生命周期函数    },    onPullDownRefresh: function () {        // 监听用户下拉动作    },    onReachBottom: function () {        // 页面上拉触底事件的处理函数    },    onShareAppMessage: function () {        // 用户点击右上角转发    }})

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎