打造自己的音乐小程序(上)——主框架设计

简介: 打造自己的音乐小程序(上)——主框架设计

效果展示


音乐小程序,点击播放效果视频


系统设计


程序主页面,其中包括header content footer 三大部分


  • header 是tab栏,用于切换页面


  • content 有 主页面信息,音乐播放器,播放列表三部分构成


    info:主页信息内容部分


    play:播放器页面


    playlist:播放列表


  • footer 是播放器,用于点击播放,切歌,查看列表,查看播放。


目录结构如下:



系统属性


首先进行整个页面的属性设置,包括小程序名称,顶部样式等等


index.json


{
  "navigationBarBackgroundColor": "#ED2E2E",
  "navigationBarTitleText": "网易云音乐",
  "navigationBarTextStyle": "white"
}


代码模块


主页面采用了include代码引用,将各部分功能分到不同的wxml文件中,代码如下


主界面:index.wxml


<!-- 标签页标题 -->
<include src="./header.wxml"/>
<!-- 内容区域 -->
<view class="content">
  <swiper current="{{item}}" bindchange="changeTab">
    <swiper-item>
      <!-- 中间信息内容部分 -->
      <include src="./info.wxml"/>
    </swiper-item>
    <swiper-item>
      <!-- 播放器页面 -->
      <include src="play.wxml" />
    </swiper-item>
    <swiper-item>
      <include src="playlist.wxml" />
    </swiper-item>
  </swiper>
</view>
<!-- 底部播放器 -->
<include src="./footer.wxml"/>


头部:header


我们要做成 tab滑动切换 的效果,在这里我们就用view实现即可



header.wxml


<view class="tab">
  <view class="tab-item {{tab==0?'active':''}}" bindtap="changeItem" data-item="0">音乐推荐</view>
  <view class="tab-item {{tab==1?'active':''}}" bindtap="changeItem" data-item="1">播放器</view>
  <view class="tab-item {{tab==2?'active':''}}" bindtap="changeItem" data-item="2">播放列表</view>
</view>


这里的css样式类有基本的共有tab属性 还有一个判断是否选中当前tab 的属性,如果后台检测到的tab值与当前选中的一样,那么给当前选中的tab加上 active 类,active 样式就是进行切换时下面的小横线。


底部:footer


底部我们要做成一个播放器样式



当我们点击头像时会跳转到播放器页面,点击三条横线时会跳转到播放列表页面,点击播放会播放音乐并变成



点击暂停会暂停音乐并变成



点击下一首切换音乐


页面设计代码如下:footer.wxml


<view class="player">
  <image class="player-cover" src="{{play.coverImgUrl}}" bindtap="dumptoplay"/>
  <view class="player-info">
    <view class="player-info-title">{{play.title}}</view>
    <view class="player-info-singer">{{play.singer}}</view>
  </view>
  <view class="player-controls">
    <!-- 切换到播放列表 -->
    <image src="/images/01.png" bindtap="changePage" data-page="2" />
    <!-- 播放或暂停 -->
    <image wx:if="{{state=='paused'}}" src="/images/02.png" bindtap="play" />
    <image wx:else src="/images/02stop.png" bindtap="pause" />
    <!-- 下一曲 -->
    <image src="/images/03.png" bindtap="next" />
  </view>
</view>


头像的调转事件


dumptoplay:function(){
  this.setData({
    item:"1",
  });
}


列表与他类似,在这不写了


播放,暂停,下一首事件


// 播放按钮
play: function() {
  this.audioCtx.play()
  this.setData({
    state: 'running'
  })
},
// 暂停按钮
pause: function() {
  this.audioCtx.pause()
  this.setData({
    state: 'paused'
  })
},
// 下一曲按钮
next: function() {
  // 如果到最后了就切换到第一首
  var index = this.data.playIndex >= this.data.playlist.length - 1 ? 0 : this.data.playIndex + 1
  this.setMusic(index)
  if (this.data.state === 'running') {
    this.play()
  }
},


相关文章
|
7月前
|
小程序 Java 数据安全/隐私保护
基于微信小程序的音乐平台 毕业设计 JAVA+Vue+SpringBoot+MySQL
基于微信小程序的音乐平台 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
小程序
微信小程序之硅谷云音乐
微信小程序之硅谷云音乐
微信小程序之硅谷云音乐
|
23天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的原创音乐小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的原创音乐小程序的详细设计和实现
13 1
|
8月前
|
小程序 数据库
基于微信小程序的在线音乐+数据库(附源码)
基于微信小程序的在线音乐+数据库(附源码)
|
11月前
|
小程序 API UED
微信小程序|音频音乐播放控制
微信小程序|音频音乐播放控制
290 0
|
小程序 JavaScript
打造自己的音乐小程序(下)——后端设计与开发
打造自己的音乐小程序(下)——后端设计与开发
228 0
|
小程序
打造自己的音乐小程序(中)——主要功能实现
打造自己的音乐小程序(中)——主要功能实现
243 0
打造自己的音乐小程序(中)——主要功能实现
|
小程序 JavaScript
微信小程序添加音乐组件
微信小程序添加音乐组件
295 0
微信小程序添加音乐组件
|
21天前
|
存储 编解码 小程序
抖音小程序开发中遇见的坑点
在抖音小程序开发中,需注意10大坑点:遵守小程序限制与规范;解决兼容性问题;优化数据加载速度;适应分享功能限制;处理视频播放挑战;优化图片加载显示;管理资源文件;提升用户体验;考虑安全性;及时更新维护。通过测试、优化和遵循官方文档,可克服这些问题,打造优质小程序。
|
1月前
|
小程序 前端开发 API
小程序全栈开发中的多端适配与响应式布局
【4月更文挑战第12天】本文探讨了小程序全栈开发中的多端适配与响应式布局。多端适配涉及平台和设备适应,确保统一用户体验;响应式布局利用媒体查询和弹性布局维持不同设备的布局一致性。实践中,开发者可借助跨平台框架实现多平台开发,运用响应式布局技术适应不同设备。同时,注意兼容性、性能优化和用户体验,以提升小程序质量和用户体验。通过这些方法,开发者能更好地掌握小程序全栈开发。

热门文章

最新文章