背景
因为嫌弃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以下我不清楚,请自测。
版权属于:塵世不再
本文链接:https://www.leeay.com/archives/68/
所有文章均采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。 您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
如果博客部分文章出现空白或异常,请留言或者联系博主修复。
6 comments
好像对于自定义的音乐播放没用
看了一下源码,自定义歌单是直接读数据的,所以随机的方式不一样。
component/footer.php 文件下的找到“解析自定义音频地址”在“$source = json_decode($source);”下插入“shuffle($source);”试试
我目前用的是云解析歌单,并且qq音乐和网易云音乐都有效
看一看
厉害了!
用了,不错。。。