背景

因为嫌弃Wordpress博客过于庞大的华而不实,所以换了Typecho博客。
但是发现默认的Typecho很丑,也没有几个好看的主题,无意看到朋友说到handsome主题,发现很棒,便装了,由于平时强迫症都是喜欢听随机音乐,看到博客自带的音乐播放器一直是固定的播放顺序,老是同一首歌曲,听到吐了,则萌生了修改随机播放的想法。

更新

现在不需要我这篇教程了,主题官方支持随机音乐了,主题增强功能-全局播放器设置-列表随机播放,勾选保存即可!

过程

在折腾的过程中,研究了修改js的方案,发现的确有效果,但是每次点击下一首,这个歌曲定位都不知道飞到哪里去了,而且上一首无法记忆,就感觉不太好用。

既然想到从源头去处理,最后发现将解析好的歌曲列表打乱顺序就好了。代码如下

shuffle($info);

将上述代码加入文件handsome/libs/Get.php的186行下面。
修改前:

case 'collect':
    $datas = $api->format(true)->playlist($id);
    $datas = json_decode($datas,true);
    foreach ( $datas as $keys => $data){

        $cover = json_decode($api->format(true)->pic($data['pic_id']),true)['url'];

        $info[$keys] = array(
            'name' => $data['name'],
            'url' => '',
            'song_id' => $data['id'],
            'cover' => $cover,
            'author' => $data['artist'][0]
        );
    }


    break;

修改后:

case 'collect':
    $datas = $api->format(true)->playlist($id);
    $datas = json_decode($datas,true);
    foreach ( $datas as $keys => $data){

        $cover = json_decode($api->format(true)->pic($data['pic_id']),true)['url'];

        $info[$keys] = array(
            'name' => $data['name'],
            'url' => '',
            'song_id' => $data['id'],
            'cover' => $cover,
            'author' => $data['artist'][0]
        );
    }
    shuffle($info);
    

    break;

显示的效果是页面上播放逻辑操作都不变,只是列表变成乱序了,刷新一次网页就是一个新的乱序列表。

此代码兼容5.1以上版本,5.1以下我不清楚,请自测。

Last modification:July 29th, 2021 at 07:49 pm
如果觉得我的文章对你有用,请随意赞赏