超级推荐用这个大佬写的aplayer插件
地址:https://github.com/MoePlayer/APlayer-Typecho
然后在预加载重载函数里写上
loadMeting();
即可
如果遇到切换页面音乐不停止的问题,再重载函数里再补充这条语句
if (typeof aplayers !== 'undefined'){
for (var i = 0; i < aplayers.length; i++) {
try {aplayers[i].destroy()} catch(e){}
}
}
↓以下文章内容已弃用
APlayer Typecho插件
https://github.com/FaithPatrick/APlayer-Typecho-Plugin
instantclick 3.0.1版兼容
方法来自https://muguang.me/php/typecho-theme-apollo.html
将预加载的执行代码
<script data-no-instant>
InstantClick.init();
</script>
改为
<script data-no-instant>
if (!window.audios) {
audios = [];
for (var i = 0; i < APlayers.length; i++) {
audios[i] = APlayers[i].audio;
}
}
InstantClick.on('change', function (isInitialLoad) {
for (var i = 0; i < APlayers.length; i++) {
audios.push(APlayers[i].audio);
}
for(var i = 0; i < audios.length; i++) {if(audios[i]){audios[i].pause()}};
});
InstantClick.init();
</script>
<script>var APlayerOptions = [];</script>//如果无效果尝试删掉这行
instantclick 3.1.0版兼容[不完美]
这个是我参考上边的瞎弄弄出来的,虽然完全看不懂QAQ。。。
打开插件的plugin.php
将里面的
<script>
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
</script>
改为
<script data-no-instant>//就是这里有修改,其他都没动
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
</script>
将预加载的执行代码
<script data-no-instant>
InstantClick.init();
</script>
改为
<script data-no-instant>
if (!window.audios) {
audios = [];
for (var i = 0; i < APlayers.length; i++) {
audios[i] = APlayers[i].audio;
}
}
InstantClick.on('change', function(isInitialLoad) {
if (isInitialLoad === false) {
var len = APlayerOptions.length;
for(var i=0;i<len;i++){
if(document.getElementById('player' + APlayerOptions[i]['id'])) {
APlayers[i] = new APlayer({
element: document.getElementById('player' + APlayerOptions[i]['id']),
narrow: false,
preload: APlayerOptions[i]['preload'],
mutex: APlayerOptions[i]['mutex'],
autoplay: APlayerOptions[i]['autoplay'],
showlrc: APlayerOptions[i]['showlrc'],
music: APlayerOptions[i]['music'],
theme: APlayerOptions[i]['theme']
});
//APlayers[i].init();
}
}
for (var i = 0; i < APlayers.length; i++) {audios.push(APlayers[i].audio);}
for(var i = 0; i < audios.length; i++) {if(audios[i]){audios[i].pause()}};
}
});
InstantClick.init();</script>
版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/aplayer-instantclick.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
这个插件我开启后主页里面没显示会是什么原因呢
这个是文章音乐播放器插件,不是背景音乐插件
然后在预加载重载函数里写上
loadMeting();
不知道是不是没设置这个,点击文章也没显示出来。。最主要不会整这个,还是你的插件好用,自己再去整几个音乐api接口,很好用
Meting这个是Meting插件的,跟这篇文章的插件没关系
恕我愚钝,我才明白这个插件的含义。。。他是在写文章的时候插入在文章中的
弱弱的问一句DPlayer的预加载重载函数咋写额,APlayer的使用没问题
有个大佬改过一个版本的dplayer兼容预加载,我不知道扔哪里去了
评论似乎不错
瞎改的,动画直接用gif,感觉超级省劲233
歌好听,插件改的嘛.........还是不错滴!@(滑稽)(bujiyige)不稽的笑
被楼下的大袋鼠揭露个bug233,难受
@(滑稽)被做主题耽误的插件大佬。
膜拜技术大牛
专辑里的音乐多了,有的加载不出来…
部分歌曲部分地区没有版权233
偶然被我发现了个小问题。
复现:播放歌曲 -> 查看第二页评论
然后尝试跳转到其他页面,音乐会持续播放。
其实bug是这样的,播放歌曲 -> 查看第二页评论,歌曲会停止,因为评论翻页用的是预加载的东西搞出来的,不是ajax翻页,以后在想怎么搞
歌曲并不会停止啊。
我测试评论翻页时,歌曲就停了呀
我又看了下,单曲会停,歌单不会。
还真是,尴尬,我在试试怎么解决@(狂汗)
你这个页面不能用手机打开@(惊讶)自动跑流量@(滑稽)
@(酷)活该233,让你没wifi
感谢大大@(乖)@(乖)