当前位置: 首页 > news >正文

网易云音乐开发--音乐播放暂停切换上下首功能实现

音乐播放暂停功能实现

封装一个控制音乐播放/暂停的功能函数

看一下文档,我需要用的api 

 这个接口好像没有音频的url,查看一下,换个api

 

 这样就能拿到id,并可以播放了 

 

 但是音乐并没有播放

 我们少了这个

 现在可以播放了,如果有上面的需要,可以参考一下

 "requiredBackgroundModes": ["audio", "location"]

 完善代码,暂停音乐

 解决系统任务栏控制音乐播放状态显示不一致问题

问题:如果用户操作系统的控制音乐播放/暂停的按钮,页面不知道,导致页面显示是否播放的状态和真实播放状态不一致

解决方案:

通过控股音频的实例backgroundAudioManager 去监听音乐播放/暂停

 我们需要写俩个的回调

 我们将backgroundAudioManager提升了一下,并挂载到this上。这样页面都能用它 

这样就写完了三个监视,但是代码的重复率太高了。所以我们要封装一个修改播放状态的功能函数

getApp解决页面销毁音乐播放状态问题

刚刚解决了系统任务栏控制音乐播放状态显示不一致问题

 就是把数据存储在app.js这个全局中,这样不会随页面的销毁,数据也销毁了

 在全局初始化这俩个参数

 直接拿来用

 判断当前页面音乐是否在播放 

 页面通信需求分析,npm包使用准备工作

通过点击这个,绑定事件。实现上下首的切换

 注意的是我们还要传入一个id,来分辨是上一首还是下一首

 现在我们知道了切哥的类型,但是只在详情页。我们需要这个传递到recommend页面才能实现上下首的切换。其实就是把recommend页面的id传进入就可以了。这里我们需要使用npm包

初始化package.json

微信小程序使用npm init 这个是问你选择的包名是啥?不能以英文开头 

然后一直回车就可以了

 然后就有包的说明书了 

勾选运行使用npm

2022-3-8 现在这个按钮官方改为 将JS编译为es5,把这个勾上就行

mroderick/PubSubJS: Dependency free publish/subscribe for JavaScript (github.com)

 在这里我们需要补充一下定义事件的相关内容

1.分类

        1.标准DOM事件

        2.自定义事件

2.标准DOM事件

        1.举例:click,input

        2.事件名固定的,事件由浏览器触发

3.自定义事件

        1.绑定事件

                1.事件名

                2.事件的回调        

                (我们使用的pubsub.js的订阅方)

                3.订阅方式为接收数据一方

        2.触发事件

                1.事件名

                2.提供事件参数对象,等同于原生事件的event对象 

                (我们使用的pubsub.js的发布方:PubSub.publish())

                3.发布方为提供数据一方

因为songDeatil需要把类型发送给recommendSong,因此songDeatil是发布方,recommendSong是订阅方

页面先去引用它

 但是我们报错了。说的是路径的错误。这是因为,我们没有构建包名

1.开发工具--》工具--》构建npm

2.会将node_modules中的包名打包到miniprogram_npm中

页面通信完整实现

先订阅,后发布

打印出发布回来的俩个数据,第一个是事件的名称,第二个就是传递回来的数据

 如何传上一首和下一首。我们这里可以使用data

 把下标传进入

 为什么,我们要传入下标呢?这是因为这样,可以操作上一首和下一首

 我们将这个数据的上下的id拿到手,此时角色互换,需要将musicId回传给songDetail页面 

 为了防止多次订阅,我们这里还需要使用PubSub.unsubscribe('musicId')取消订阅 

切换歌曲功能实现

上一步,我们已经成功的实现了俩个页面之间的通信

之前,我们就封装好了一个函数来获取音乐的i详细信息,这里我们就直接调用它 

这样我们就能实现上下音乐的切换了。现在我们要实现一个新的功能,那就是自动播放当前的音乐

还是调用我们之前的方法。现在有一个bug,就是我们如果选择第一首音乐,然后按<发现报错 

因为我们在下标为0在去找,不就是为-1了吗。也就是我们要考虑第1首和最后1首,当我们点击点1首,让他切换到最后1首,最后1首切换到第1首

完整效果 

解决了一个小bug 这一块搞错了,导致页面跟系统任务栏控制音乐播放状态显示不一致稍微跟想象的不同

相关文章:

网易云音乐开发--音乐播放暂停切换上下首功能实现

音乐播放暂停功能实现 封装一个控制音乐播放/暂停的功能函数 看一下文档&#xff0c;我需要用的api 这个接口好像没有音频的url&#xff0c;查看一下&#xff0c;换个api 这样就能拿到id&#xff0c;并可以播放了 但是音乐并没有播放 我们少了这个 现在可以播放了&#xff…...

如何学习网络安全?

近半年我一直在整理网络安全相关资料&#xff0c;对于网络安全该怎么入门我谈谈我的看法&#xff0c;网络安全一直处于法律的边缘&#xff0c;学的不好或者剑走偏锋一下子人就进去了&#xff0c;所以我建议入门前先熟读《网络安全法》&#xff0c;除此之外还有《互联网安全产品…...

软件测试适合女生吗?

大家好&#xff0c;我是程序员馨馨&#xff0c;一个混过大厂&#xff0c;待过创业公司&#xff0c;有着 6 年工作经验的软件测试妹纸一枚。之前在也写过几篇文章&#xff0c;之后很多朋友过来咨询女生能不能做软件测试。 今天索性写篇文章&#xff0c;详细的介绍一下软件测试&a…...

华为云——代码托管的使用

一、打开前后端项目 登录华为云&#xff0c;点击页面右上角的用户名——点击个人设置 2.点击代码托管的HTTPS密码管理&#xff0c;设置自己的密码 3.回到代码仓库&#xff0c;复制HTTP地址 4.打开GitHubDesktop&#xff0c;点击左上角进行仓库克隆 &#xff08;我这里已经cl…...

ChatGPT从⼊⻔到精通

编者寄语 ChatGPT 作为⼀种强⼤的⾃然语⾔处理模型&#xff0c;已经成为人工智能领域的重要研究⽅向之⼀。在不断的发展和创新 中&#xff0c;ChatGPT 已经具备了很强的⾃然语⾔处理能⼒&#xff0c;其可以实现⾃然语⾔的⽣成、理解和交互&#xff0c;为⼈类的⽣产和⽣活带来了…...

node + alipay-sdk 沙箱环境简单测试电脑网站支付

正式上线需要上传营业执照&#xff0c;不知道怎么去申请一个。。。。。 使用沙箱测试&#xff0c;首先前往支付宝开放平台控制台可看到左下方的沙箱测试链接&#xff1a; 然后设置接口加签方式&#xff0c;选择系统默认密钥&#xff1a; 系统默认密钥 -> 公钥模式 -> 查看…...

卷积神经网络详解

&#xff08;一&#xff09;网络结构 一个卷积神经网络里包括5部分——输入层、若干个卷积操作和池化层结合的部分、全局平均池化层、输出层&#xff1a; ● 输入层&#xff1a;将每个像素代表一个特征节点输入进来。 ● 卷积操作部分&#xff1a;由多个滤波器组合的卷积层。 …...

API架构的选择,RESTful、GraphQL还是gRPC

文章目录 一、RESTful1、什么是RESTful&#xff1f;2、RESTful架构的原则3、RESTful的适用场景4、RESTful的优点5、RESTful的缺点 二、GraphQL1、什么是GraphQL&#xff1f;2、GraphQL的原则3、GraphQL的优点4、GraphQL的缺点 三、gRPC1、什么是gRPC2、gRPC的应用场景3、gRPC的…...

人机融合智能的测量、计算与评价

老子在《道德经》第二十一章写道:"道之为物,惟恍惟惚。惚兮恍兮,其中有象;恍兮惚兮,其中有物。窈兮冥兮,其中有精;其精甚真,其中有信。"&#xff08;“道”这个东西&#xff0c;没有清楚的固定实体。它是那样的恍恍惚惚啊&#xff0c;其中却有形象。它是那样的恍恍惚…...

虹科新品 | 高可靠性、可适用于高磁/压的线性传感器!

PART 1 什么是线性传感器&#xff1f; 基本上&#xff0c;线性传感器是一种用于测量位移和距离的设备&#xff0c;具有高可靠性。测量网格通过光学传感器移动测量数据&#xff0c;数据被光学记录并通过控制器转换为电气数据&#xff0c;而控制器又可以转换为路径。 因此&…...

支付系统设计五:对账系统设计01-总览

文章目录 前言一、对账系统构建二、执行流程三、获取支付渠道数据1.接口形式1.1 后台配置1.2 脚本编写1.2.1 模板1.2.2 解析脚本 2.FTP形式2.1 后台配置2.2 脚本编写2.2.1 模板2.2.2 解析脚本 四、获取支付平台数据五、数据比对1. 比对模型2. 比对器 总结 前言 从《支付系统设…...

阿里三面过了,却无理由挂了,HR反问一句话:为什么不考虑阿里?

进入互联网大厂一般都是“过五关斩六将”&#xff0c;难度堪比西天取经&#xff0c;但当你真正面对这些大厂的面试时&#xff0c;有时候又会被其中的神操作弄的很是蒙圈。 近日&#xff0c;某位测试员发帖称&#xff0c;自己去阿里面试&#xff0c;三面都过了&#xff0c;却被…...

办公智慧化风起云涌,华为MateBook X Pro 2023是最短距离

今年以来&#xff0c;我们几乎每个月&#xff0c;甚至每星期都可以看到大模型应用&#xff0c;在办公场景下推陈出新。 办公智慧化已成必然&#xff0c;大量智力工作正在被自动化。一个普遍共识是&#xff1a;AI能力范围之内的职业岌岌可危&#xff0c;AI 能力范围之外的职业欣…...

分布式项目 09.服务器之间的通信和三个工具类

项目的结构&#xff1a;1.通过Nginx首先把访问首页的请求发送到前端web服务器&#xff0c;2.web服务器会根据请求的url中的一些细节&#xff0c;来把相关的请求发送到相关的服务器中&#xff0c;3.相关的服务器会处理业务&#xff0c;并且返回结果到web服务器中&#xff0c;最后…...

C# 基本语法

C# 基本语法 C# 是一种面向对象的编程语言。在面向对象的程序设计方法中&#xff0c;程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&#xff0c;或者说&#xff0c;是在相同的 class 中。 例如&#xff0c;以 Rectangle&#xff08;矩形&#xff09;对象为…...

做网络爬虫需要掌握哪些技术?

网络爬虫是指通过代码自动化地访问网页并收集数据的程序&#xff0c;要开发一个成功的爬虫&#xff0c;需要掌握以下技术&#xff1a; 1. HTTP 协议&#xff1a;了解 HTTP 请求和响应的基本内容&#xff0c;以及如何使用 HTTP 请求头和响应头来优化爬虫性能。 2. HTML/CSS/Ja…...

工作利器:三种简单方法将PPT转换成PDF

PDF是一种常用的文件格式&#xff0c;适合数据传输和阅读。在工作中&#xff0c;有时我们需要将PPT文件转换为PDF格式以方便使用。下面是几种将PPT转换为PDF的方法&#xff0c;其中方法二将修改为使用记灵在线工具进行转换。 方法一&#xff1a;直接将文件导出为PPT 一般来说…...

《设计模式》状态模式

《设计模式》状态模式 定义&#xff1a; 状态模式也称为状态机模式&#xff0c;允许对象在内部状态发生改变时改变它的行为&#xff0c;对象看起来好像修改了它的类。属于行为型模式。 状态模式的角色组成&#xff1a; State(抽象状态类)&#xff1a;定义一个接口用来封装与…...

2023年好用的设计图制作软件推荐

说到设计图制作软件&#xff0c;设计师当然最关注核心设计功能&#xff0c;包括预加载模板、图像数据库、界面和基本编辑功能。此外&#xff0c;还要考虑设计图制作软件是否可以协同工作。 1.即时设计 即时设计是一款「专业UI设计工具」&#xff0c;不受平台限制&#xff0c;…...

JavaNote_1.0.2_Spring

Spring框架定义 Spring Framework&#xff1a; Spring 最初的项目&#xff0c;包括六大模块&#xff1a;DAO、ORM、AOP、JEE、WEB、CORE。控制反转和面向切面编程是它的核心功能。 Spring Boot&#xff1a; 一套全新的基础框架&#xff0c;用来快速搭建Spring应用&#xff0c;…...

embeddinggemma-300m部署步骤详解:从pull模型到WebUI验证全流程

embeddinggemma-300m部署步骤详解&#xff1a;从pull模型到WebUI验证全流程 1. 环境准备与ollama安装 在开始部署embeddinggemma-300m之前&#xff0c;我们需要先准备好运行环境。这个模型对硬件要求相对友好&#xff0c;普通笔记本电脑或台式机都能运行。 系统要求&#xf…...

如何重新激活微信网页版:wechat-need-web插件实战指南

如何重新激活微信网页版&#xff1a;wechat-need-web插件实战指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 微信网页版无法登录是许多用户在办公…...

DeepSeek-OCR-2参数详解:--max_pages --batch_size --conf_threshold 高级调优指南

DeepSeek-OCR-2参数详解&#xff1a;--max_pages --batch_size --conf_threshold 高级调优指南 1. 引言&#xff1a;为什么需要调优参数&#xff1f; 如果你用过DeepSeek-OCR-2&#xff0c;可能已经体验过它强大的文档解析能力。但你是否遇到过这样的情况&#xff1a;处理多页…...

Photoshop CS6 分享

下载链接Photoshop CS6 好用链接&#xff1a;https://pan.quark.cn/s/35e0b2cbe8094:/^tX0KdDR5jR^%第二步&#xff1a;双击exe文件打开即可\n三&#xff1a;软件介绍\n\n\n原版安装复杂、占满 C 盘&#xff0c;新版要求高配置带不动&#xff1f;今天给大家安排一款「宝藏版本」…...

南京旅行避坑!选本地地陪的真实经验分享

现代社会&#xff0c;大家压力都大&#xff0c;焦虑感如影随形&#xff0c;所以很多人都盼着旅行来给自己松松弦。我之前去南京自由行&#xff0c;就没请专业的本地陪同服务&#xff0c;结果那趟旅行简直是噩梦&#xff0c;比上班还累。出发前&#xff0c;我觉得自己做攻略能省…...

多媒体应用开发:QmlBook音频视频处理实战指南

多媒体应用开发&#xff1a;QmlBook音频视频处理实战指南 【免费下载链接】qmlbook The source code for the upcoming qml book 项目地址: https://gitcode.com/gh_mirrors/qm/qmlbook 想要快速掌握Qt多媒体应用开发吗&#xff1f;QmlBook提供了完整的音频视频处理实战…...

实战指南:构建高可用集群的核心步骤与关键技术

构建高可用集群的核心步骤 高可用&#xff08;High Availability, HA&#xff09;集群旨在通过冗余设计和故障转移机制&#xff0c;确保服务在硬件或软件故障时仍能持续运行。以下是搭建高可用集群的核心步骤&#xff1a; 1. 需求分析与架构设计 明确目标&#xff1a;定义可…...

IDA Pro 9.3 更新- 强大的反汇编程序、反编译器和多功能调试器工具

简介 IDA Pro 9.3 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器 A powerful disassembler, decompiler and a versatile debugger. In one tool.IDA Pro 一个强大的反汇编程序、反编译器和多功能调试器。集成在一个工具中。 请访问原文链接&#x…...

东莞geo搜索优化平台怎么找?亲测正规平台的实践分享

引言在数字化时代&#xff0c;企业如何有效地利用搜索引擎优化来提升品牌曝光度和业务转化率&#xff0c;成为营销领域的关键课题。特别是对于地域性服务企业&#xff0c;如东莞的装修公司或定制服饰公司&#xff0c;地理定位搜索优化&#xff08;geo搜索优化&#xff09;显得尤…...

企业什么时候应采用 GraphRAG,什么时候普通 RAG 已足够?

企业在建设知识问答、智能搜索或 AI 助手时&#xff0c;常见的问题并不只是模型能力不足&#xff0c;而是没有区分不同类型的知识处理需求。并非所有场景都需要 GraphRAG&#xff0c;也并非普通 RAG 可以覆盖全部企业问题。二者适用的前提、处理的对象以及能够解决的问题&#…...