微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复
开篇语
昨晚发了一篇:
《简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 》
然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站。然后在一股神奇力量的推动下,我找到了它:
《克苏鲁的呼唤 2005 580P中字 经典名篇完美还原》
然后促成了吃完午饭之后,沉迷其中不可自拔。下午写到四点半,才最终完成了我的近四千字的心血之作:
简年16: 初涉《克苏鲁的呼唤》--克苏鲁神话体系入门

可惜明珠暗投:

心灰意冷之下,百无聊赖的打开简书,然后惊喜的发现,这篇文章上了首页今日看点了。这算是一个慰藉?还是很不错的,所以促使了我来写这一篇文章,也就是接着这篇火热的文章的续集,Bug修复 以及更深层次的开发!


正文
本次由于态度没摆正,晚上又跟我的指路明灯学长聊天到八点多。然后又跟我的迷途羔羊说了会话!然后花了半个多小时测评一个免费的VPN (具体情形请去看我的另一篇文章)再来搞开发就是十点半了。时间不是很多,所以调教好的Bug也不多,但是还是有的!
一、音乐界面最上层的滑动banner
原本采用自己写函数的方式来触发,后来改用官方组件--swiper 进行调控:

改进代码如下(github未更新,请读者自行更改)
《---music.wxml》
<swiper class="swiper" indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" width="100" height="10">
<swiper-item wx:for="{{imgUrls}}">
<image src="{{item}}" class="slide-image" class="banner" mode="fullToFill"/>
</swiper-item>
</swiper>
《---music.js》
Page(
{
onReady: function (e) {
// 使用 wx.createAudioContext 获取 audio 上下文 context
this.audioCtx = wx.createAudioContext('myAudio')
},
data: {
count:1,
imgUrls: [
'http://159.203.250.111/banner1.png',
'http://159.203.250.111/banner2.png',
'http://159.203.250.111/banner3.png',
],
indicatorDots: false,
autoplay: true,
interval: 2000,
duration: 1000,
},
audioPlay: function () {
this.audioCtx.play()
},
audioPause: function () {
this.audioCtx.pause()
},
audio14: function () {
this.audioCtx.seek(14)
},
audioStart: function () {
this.audioCtx.seek(0)
},
changeIndicatorDots: function(e) {
this.setData({
indicatorDots: !this.data.indicatorDots
})
},
changeAutoplay: function(e) {
this.setData({
autoplay: !this.data.autoplay
})
},
intervalChange: function(e) {
this.setData({
interval: e.detail.value
})
},
durationChange: function(e) {
this.setData({
duration: e.detail.value
})
},
onShareAppMessage: function () {
return {
title: '欢迎使用颜大傻牌音乐播放器',
desc: '将你正在听的歌分享到~~~',
path: '/page/music/music.js'
}
},
})
二、增置了上一首下一首切歌功能
目前还在调试,官方给定的逻辑选择模块我还没吃透。敬请见谅!目前有了一点头绪,代码在下面。(PS:最新消息,制作成功!哈哈。可以流利的播放各种音乐了!!!我还在制作目录,请诸君稍后!)
《---music.wxml》
<block wx:for="{{song}}" wx:key="id">
<block wx:if="{{item.musicid==count}}">
<audio poster="{{item.poster}}" name="{{item.name}}" author="{{item.author}}" src="{{item.src}}" id="myAudio" controls="true" >
<button plain="true" type="primary" bindtap="audioPlay" class="button_anniu">开始播放</button>
<button type="primary" bindtap="audioPause" class="button_anniu">暂停</button>
<button type="primary" bindtap="audio14" class="button_anniu">设置当前播放时间为14秒</button>
<button type="primary" bindtap="audioStart" class="button_anniu">停止</button>
<button bindtap="NextMusic" class="button_anniu"> 上一首 </button>
<button bindtap="LastMusic" class="button_anniu"> 下一首 </button>
</audio>
</block>
</block>
《---music.js》
data: {
song:[{
musicid:1,
poster:'http://159.203.250.111/Carly.png',
name:'Call_Me_Baby',
author: 'Carly_Rae_Jepsen',
src:'http://159.203.250.111/Call_Me_Baby.mp3',
},
{
musicid:2,
poster:'http://159.203.250.111/carly.png',
name:'Good_Time',
author: 'Carly_Rae_Jepsen',
src:'http://159.203.250.111/Good_Time.mp3',
},
{ musicid:3,
poster:'http://159.203.250.111/five1.png',
name:'Maps',
author: 'Marron 5',
src:'http://159.203.250.111/maps.mp3',
},
{ musicid:4,
poster:'http://159.203.250.111five2.png',
name:'Animals',
author: 'Marron 5',
src:'http://159.203.250.111/Animals.mp3',
},
{ musicid:5,
poster:'http://159.203.250.111/five3.png',
name:'Sugar',
author: 'Marron 5',
src:'http://159.203.250.111/Sugar.mp3',
},
],
count:1,
imgUrls: [
'http://159.203.250.111/banner1.png',
'http://159.203.250.111/banner2.png',
'http://159.203.250.111/banner3.png',
],
indicatorDots: false,
autoplay: true,
interval: 2000,
duration: 1000,
},
audioPlay: function () {
this.audioCtx.play()
},
audioPause: function () {
this.audioCtx.pause()
},
audio14: function () {
this.audioCtx.seek(14)
},
audioStart: function () {
this.audioCtx.seek(0)
},
NextMusic: function(e) {
this.setData({
count: this.data.count + 1
})
},
LastMusic: function(e) {
this.setData({
count: this.data.count - 1
})
},
onShareAppMessage: function () {
return {
title: '欢迎使用颜大傻牌音乐播放器',
desc: '将你正在听的歌分享到~~~',
path: '/page/music/music.js'
}
},
})

结束语
小程序算是假期的一个调剂吧,不然可能就真的天天看小说,然后逛逛B站了。然后,我觉得我有必要show一下我的工作环境,最近都有点不想走人家,天天在家写代码了~~~~说好的今天去一个姑奶奶家,可是起床的时候已经是十点多了。外边还在下着蒙蒙小雨~没辙,今天是腐败堕落的一天!!!
但是明天我就要去同学聚会了,在县城,娘的,还要七点多起来搭车!虽然对像是一群男的。但是也还是要洗个澡换件衣服出门!这又把我的起床时间提前到六点半了 ** T_T ** 心塞!争取明天把电脑带上,然后找时间休息的时候继续出文吧!寒假快结束了。保持的好习惯多保留一天是一天啊!
大神的作品就不安利了。我自己写完的这些,我觉得应该比之前说的一些膜拜的作品要优秀了。
真正的主体(想看完整的代码,猛戳下面的链接吧!!)在这:
简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器
另外,对于有翻墙外出的需求的朋友,我刚才写了一篇免费180天优秀VPN的文章可供借鉴:
简年17: 免费的VPN 以及几种网络链接的测评
- 
个人宣言
知识传递力量,技术无国界,文化改变生活!
微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复的更多相关文章
- 微信小程序购物商城系统开发系列-目录结构
上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...
- 微信小程序购物商城系统开发系列-工具篇
微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...
- 微信小程序购物商城系统开发系列
微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...
- 从微信小程序到鸿蒙js开发【11】——页面路由
目录: 1.router.push()&wx.navigateTo() 2.router.replace()&wx.redirectTo() 3.router.back()&w ...
- 从微信小程序到鸿蒙js开发【15】——JS调用Java
鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...
- 微信小程序版博客——开发汇总总结(附源码)
花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...
- 从微信小程序到鸿蒙js开发【12】——storage缓存&自动登录
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 正文: 在应用开发时,我们常需要将一些数据缓存到本地,以提升用户体验.比如在一个电商的app中,如果希望用户登录成功后,下次打 ...
- 从微信小程序到鸿蒙js开发【13】——list加载更多&回到顶部
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1.list加载更多 2.list回到顶部 3.<从微信小程序到鸿蒙js开发>系列文章合集 1.list加 ...
- 微信小程序客服消息开发实战:实时在手机上接收小程序客服消息通知,以及在手机上回复
在微信小程序开发中,可以非常方便的集成客服功能,只需要一行代码便可以将用户引导至客服会话界面.这行代码就是: <button open-type="contact" bind ...
随机推荐
- juggle添加c#版本
此前做过一个c++版的网络层dsl:http://www.cnblogs.com/qianqians/p/4255034.html 现在给这个dsl加入c#的支持,并且对代码的结构做了优化,将语法解析 ...
- as 快捷键
as 快捷键 Ctrl+G / Ctrl+Alt+Shift+G:查询变量或者函数或者类在哪里被使用或被调用,后者是前者的复杂表现,可以选择查询范围等. Alt+H:查找功能,全局查找 F4:查看类 ...
- ReactJS基础(续)
前边的ReactJS基础,我们可以了解到,对于React,可以说是万物皆组件 React的组件应该具有 可组合(Composeable)可重用(Reusable)可维护(Maintainable)的特 ...
- 一级缓存二级缓存(hibernate)
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事 ...
- Python中字典和集合
Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...
- 为实施了IFD的Dynamics 365更换自签名的SSL证书以符合Chrome的要求
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复259或者20170704可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Linux 下搭建www服务器
偶然的机会接触了前端开发,尽管最初的意愿是后台. 不过现在看来,前端后台数据库密不可分! 回想起来感觉自己学习的层次也还很好,因为之前有学习c语言.c++的基础,所以在学习html,js的过程中感觉还 ...
- C#常用8种排序算法实现以及原理简介
public static class SortExtention { #region 冒泡排序 /* * 已知一组无序数据a[1].a[2].--a[n],需将其按升序排列.首先比较a[1]与a[2 ...
- ES6速记手册
1.三元操作符 这是一个很好的节省代码当你想要编写一个如果. . else语句在一线. 普通写法: const x = 20;let big;if (x > 10) { 速记: const bi ...
- 关于locals()、globals()以及作用域的一些感悟
示例代码 i=6def foo(): print locals() print globals() i=66 print locals() print globals()class demo: i=6 ...