APlayer Typecho插件兼容instantclick.js

代码相关 instantclick APlayer 兼容 2017-08-7 阅读:4799

超级推荐用这个大佬写的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>

32条评论

    Jdeal

    弱弱的问一句DPlayer的预加载重载函数咋写额,APlayer的使用没问题

    游客 Windows7 214 天前回复

      泽泽社长
      @Jdeal

      有个大佬改过一个版本的dplayer兼容预加载,我不知道扔哪里去了

      作者 Windows7 212 天前回复

    悦悦

    评论似乎不错

    游客 Windows7 903 天前回复

      Jrotty
      @悦悦

      瞎改的,动画直接用gif,感觉超级省劲233

      作者 Linux 903 天前回复

    三秋

    歌好听,插件改的嘛.........还是不错滴!@(滑稽)(bujiyige)不稽的笑

    游客 Windows7 915 天前回复

      Jrotty
      @三秋

      被楼下的大袋鼠揭露个bug233,难受

      作者 Linux 914 天前回复

    c0smxsec

    @(滑稽)被做主题耽误的插件大佬。

    游客 Linux 915 天前回复

    Mr.Li

    膜拜技术大牛

    游客 MacOS 916 天前回复

    OC4

    专辑里的音乐多了,有的加载不出来…

    游客 安卓棉花糖 917 天前回复

      Jrotty
      @OC4

      部分歌曲部分地区没有版权233

      作者 Linux 915 天前回复

    大袋鼠

    偶然被我发现了个小问题。
    复现:播放歌曲 -> 查看第二页评论
    然后尝试跳转到其他页面,音乐会持续播放。

    游客 MacOS 919 天前回复

      Jrotty
      @大袋鼠

      其实bug是这样的,播放歌曲 -> 查看第二页评论,歌曲会停止,因为评论翻页用的是预加载的东西搞出来的,不是ajax翻页,以后在想怎么搞

      作者 Linux 915 天前回复

        大袋鼠
        @Jrotty

        歌曲并不会停止啊。

        游客 MacOS 915 天前回复

          Jrotty
          @大袋鼠

          我测试评论翻页时,歌曲就停了呀

          作者 Linux 915 天前回复

            大袋鼠
            @Jrotty

            我又看了下,单曲会停,歌单不会。

            游客 MacOS 915 天前回复

              Jrotty
              @大袋鼠

              还真是,尴尬,我在试试怎么解决@(狂汗)

              作者 Linux 915 天前回复

    初夏小朋友

    你这个页面不能用手机打开@(惊讶)自动跑流量@(滑稽)

    游客 安卓牛轧糖 921 天前回复

      Jrotty
      @初夏小朋友

      @(酷)活该233,让你没wifi

      作者 Linux 921 天前回复

    Waxxh

    感谢大大@(乖)@(乖)

    游客 Windows7 922 天前回复

    王大佬

    木有WordPress@(笑尿)@(笑尿)@(笑尿)

    游客 Windows7 926 天前回复

      小龙
      @王大佬

      有啊,怎么会没有

      游客 Windows10 924 天前回复