
<view class="container">
<view class="title">
<image class="titbg" src="../../src/titbg.png" background-size="cover"></image>
<view class="tit">
<image class="scene" src="../../src/{{titclass}}.png" background-size="cover"></image>
<image class="mo" src="../../src/mo.png" background-size="cover"></image>
</view>
</view>
<view class="items">
<view class="item" wx:key wx:for="{{list}}">
<view class="audio" bindtap="bindViewTap" data-voice="{{item.voice}}" data-id="{{item.id}}">
<image class="item-cover" src="{{item.thumbnail}}" mod="aspectFill"></image>
<image class="a_btn" src="{{a_btn[item.id]?a_btn[item.id]:a_btn[0]}}" background-size="cover"></image>
</view>
<text bindtap="bindTextTap" data-id="{{item.id}}">{{item.name}}</text>
</view>
</view>
<view>
<image class="copyright" src="../../src/copyright.png" background-size="contain"></image>
</view>
<view>
<audio src="{{detailInfo.voice}}" id="myAudio" bindended="audioEnd"></audio>
</view>
</view>
|
.title{
position:relative;
}
.titbg{
width:268rpx;
height:120rpx;
margin:0 auto;
display:block;
}
.tit{
position:absolute;
width:348rpx;
height:40rpx;
top:60rpx;
left:50%;
margin-left:-174rpx;
}
.scene{
position:absolute;
width:348rpx;
height:40rpx;
}
.mo{
position:absolute;
width:54rpx;
height:54rpx;
right:10rpx;
top:-26rpx;
}
.items{
position:relative;
z-index:2;
}
.item-cover{
width:162rpx;
height:162rpx;
border-radius:50%;
display:block;
margin:0 auto 30rpx auto;
}
.audio{
position:relative
}
.a_btn{
width:36rpx;
height:36rpx;
position:absolute;
top:50%;
left:50%;
margin-left:-18rpx;
margin-top:-18rpx;
z-index:2;
}
.item{
width:50%;
float:left;
margin:30rpx 0 40rpx 0;
}
.item text{
width:100%;
display:block;
text-align:center;
font-size:28rpx;
height:2em;
overflow:hidden;
}
|
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
voice:"",
list: [],
titclass:"scene1",
a_btn: ['../../src/play_scene.png'],
last:0,
pause:false
},
//事件处理函数
bindTextTap: function(e) {
var id = e.currentTarget.dataset.id;
console.log(id);
wx.navigateTo({
url: '../detail/detail?id='+id
})
},
bindViewTap: function(e){
var that = this
var voice = e.currentTarget.dataset.voice;
var id = e.currentTarget.dataset.id;
that.audioPlay(voice,id);
},
getSceneList: function(id){
var that = this
wx.request({
url: "https://qcloud.bmy.com.cn/api/voices/list?&id="+id,
success: function(data){
console.log(data.data);
that.setData({
list:data.data,
titclass:'scene'+id
})
that.setAudio(data.data)
},
fail: function () {
wx.showLoading({
title: '数据加载错误,请刷新再试!'
})
}
});
},
setAudio: function(data){
var that = this;
that.audioCtx = wx.createAudioContext('myAudio')
},
audioPlay: function(voice,id){
var that = this;
var tmp = that.data.a_btn;
var pause;
if(id == that.data.last&&that.data.pause==false){
that.audioCtx.pause();
tmp[id] = '../../src/play_scene.png'
pause = true
}else{
if(id != that.data.last){
that.audioCtx.setSrc(voice)
}
that.audioCtx.play();
tmp[that.data.last] = '../../src/play_scene.png'
tmp[id] = '../../src/pause_scene.png'
pause = false
}
that.setData({
a_btn: tmp,
last:id,
pause:pause
})
},
audioEnd:function(){
var that = this;
var tmp = that.data.a_btn;
tmp[that.data.last] = '../../src/play_scene.png'
that.setData({
a_btn: tmp
})
},
onLoad: function (option) {
var that = this
that.getSceneList(option.id);
wx.showLoading({
title: '加载中'
})
},
onReady:function(){
setTimeout(function(){
wx.hideLoading();
},500)
}
})
|
模板简介:该模板名称为【微信小程序语音在线点击播放列表页样式制作设计教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。