源码介绍
多站合一音乐搜索解决方案,支持搜索试听以下网站音乐:
网易云音乐 QQ音乐 酷狗音乐 酷我音乐 虾米音乐 百度音乐 一听音乐 咪咕音乐 荔枝FM 蜻蜓FM 喜马拉雅FM 全民K歌 5sing原创 5sing翻唱
数据调用的是各网站的 API 接口,有的接口并不是开放的,随时可能失效,本项目相关代码仅供参考。
文件:n459.com/file/25127180-477438372
源码预览
常见问题
- 提示数据获取失败
方案1:
修改 index.php 文件里的 MC_PROXY 为您的代理地址
将 core/music.php 里需要代理的 URL ‘proxy’ => false 改为 ‘proxy’ => true
方案2:
在 core/music.php 里查找 setTimeout,将其后面的数值 20 改为更大。
在 static/js/music.js 里查找 timeout
,将其数值 30000 改为更大。
方案3:
服务器要支持 curl。
更换服务器,选择延迟更低的服务器。
2. 播放器显示 Error happens ╥﹏╥
音乐链接为空
- 音乐需要付费才能收听
- 版权限制,外站无法获取
- 服务器 IP 所在地不在源站允许的区域
- 音乐下架了,链接被去除
音乐链接不为空
- 当前 IP 所在地因版权限制而无法播放
- 音乐格式浏览器无法正常解析
- 国内接口优化
如果你的网站在国内,打开 /index.php,将 define(‘MC_INTERNAL’, 0); 修改为 define(‘MC_INTERNAL’, 1);,这样就可以取到咪咕和网易云音乐的 320k 音频了。
免责声明
本站音频文件来自各网站接口,本站不会修改任何音频文件
音频版权来自各网站,本站只提供数据查询服务,不提供任何音频存储和贩卖服务
开源协议
The MIT License (MIT)
以下内容无关:
-------------------------------------------分割线---------------------------------------------
- 为什么有消息系统?
1.1 背景
今天复习kafka知识点的第一个问题是:为什么有消息系统?可能有很多自学大数据开发的人都不怎么注意这个问题,但老刘希望能够用这个小问题来提醒自学大数据开发的人,对于每个问题形成自己的理解真的很重要,即使再小的问题,它都有很大的细节!
在这个问题上,某机构的资料是这样回答的:
看到答案的我表情是这样的!
原谅老刘是个木鱼脑袋,明明问的是为什么,可这个内容回答的是消息系统有什么用,并且对于每个用处的解释,老刘觉得太专业了,实在不能用自己的理解把它们解释出来!
于是,老刘带着疑问去搜了这个问题的相关答案,不查不知道,一查吓一跳,绝大多数的人都是这样的回答,内容和排版都差不多,基本都是复制粘贴别人的内容。(抄别人的东西有意思嘛)
老刘现在不得不感慨,在网上找到一个好的答案真的太难了,真正用自己的理解回答问题的人太难找了!
1.2 解决
那这个小问题最后是如何解决的呢?
老刘在某天饭点突然一激灵,终于明白了为什么和有什么用这两个其实是可以相互转换的!
在这个灵感下,老刘结合网上大佬的内容,对为什么会有kafka消息系统给出了这样的答案。
首先为什么会有kafka消息系统这个问题,要先回答为什么会有消息系统,因为kafka是消息系统的一个实现。
老刘举例说明一下为什么会有消息系统,对消息系统的用处进行形象的解释。
这是第一个例子:
在巧克力的生产过程中,研磨车间把可可豆变成可可粉,再人工传输到加热车间变为巧克力酱,在人工搬到罐装车间,通过巧克力模型,变为各种形状的巧克力。但是呢,人工搬运有点慢,我们就引入了传送带,省掉人工搬运过程。
接着又发现问题,每个车间生产效率是不一样的,研磨车间贼快,加热车间慢,而罐装车间也快。在这种情况下,研磨车间产生的东西太多了,加热车间忙不过来,这个时候就可以设置一个仓库。
这个仓库就相当于我们的消息系统,俗称消息中间件,起到一个缓冲的作用,可以做到削峰填谷。
也相当于送快递,当快递到了,我现在没有时间来取,快递员就把快递放在附件的超市里,等我有空了就去取。
以上就是消息系统具有的缓冲、削峰填谷功能。
现在讲述第二个例子:
传统模式下,当用户下单后,订单系统需要通知库存系统,其实就是调用库存系统的接口。但是,当库存系统出现故障,无法访问的时候,订单减库存就是失败,导致订单失败,这就是订单系统和库存系统耦合。
那我们怎么办呢?
优秀的开发人员引入了消息系统,用户下单后,订单系统完成持久化处理,将消息写入消息系统,返回用户下单成功。然后库存系统采用拉/推的方式,获取下单信息,库存系统就会根据下单信息,进行库存操作。
通过这样的方式,订单系统就和库存系统成功解耦,这就是消息系统的解耦合功能。
由于某些机构的资料以及很多博客的答案都比较具有专业性,老刘实在难以理解,无法用自己的话解释出来。
于是,老刘结合了很多例子对消息系统的用处进行了形象的解释,对为什么会有消息系统这个问题也有了大致的答案。对于这个小问题终于能有自己的理解了,不容易啊!
总结一下,对于为什么会有消息系统这个问题,我们可以有这样的理解。
在实际开发过程中,常常有各种千奇百怪需求,突发情况也随时可能发生,比如应用流量暴增、应用崩溃等,为了解决这些情况,优秀的开发人员实现各种消息系统,比如RabbitMQ、RocketMQ、kafka,这些消息系统基本都会有解耦、缓冲、削峰填谷等功能,通过这些功能可以帮助我们在日常开发过程中来应对这些问题。如果时间允许,可以在对每个功能举例说明!
- 总结
老刘以前写博客,纯粹就是分享自学大数据开发的细节知识点,让同样是自学的伙伴查漏补缺。今天的博客有多个目的,老刘写了一个列表如下:
提醒所有自学开发找工作的人,无论是看资料还是浏览别人的博客内容,千万不要照搬别人的内容,别人写什么,就去背什么,这样太危险了!
对于任何知识点,无论多么简单,它都有大大的细节,自己尝试能能用自己的理解把那些专业的知识点翻译为自己的话!
表达对众多直接复制粘贴的博客表达不满,用心写、用自己的理解写,不好吗?
最后,如果有任何遗漏或者错误的地方,联系公众号:努力的老刘,欢迎各位英雄好汉、女中豪杰前来批评和指点!
在读研二学生,现在为进大厂努力,学习大数据开发。 有事,公众号:努力的老刘,联系老刘。 没事,就和老刘一起学习大数据。