吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14079|回复: 468
上一主题 下一主题
收起左侧

[原创工具] U盘歌单管理器(播放列表) -V5.2.0 【2025-01-14】

    [复制链接]
跳转到指定楼层
楼主
jumpbull 发表于 2025-1-11 00:53 回帖奖励
本帖最后由 jumpbull 于 2025-1-14 20:13 编辑

我在学习 pyqt 后的第二个更新的软件,这个软件重写的工作量很大,花了近一个月时间,pyqt 也有不少坑要填,过程中也在不断地学习完善。

这个软件原来一直用 tkinter 编写,现换成 pyqt5 后,界面显得更加合理,以前的很多想法也可以实现了。
原帖链接:https://www.52pojie.cn/thread-1509560-1-1.html



软件比较适合用在车载音乐播放上,现在人喜欢用手机联蓝牙听歌,也确实方便。但如果对音质有要求的,对蓝牙设备要求就很会高,要听高质量的歌单也得浪费流量和开通音乐平台的会员!
把自己喜欢的音乐下到U盘中,再用本软件制作播放列表是最佳方案。网上可以找到 “某我” 的破解版,甚至可以下载无损音乐,大家可以自己搜一下!



【更新说明】
V5.2.0 【2025-01-14】
增加音乐文件名排序功能,针对不支持播放列表的设备,增加了音乐排序实现播放排序(也就是在音乐文件名前加序号);
歌单编辑时,对音乐的移动增加了拖拽模式,原为鼠标推动模式,部分电脑使用会有明显的迟滞感,此时可切换到拖拽模式让音乐移动更加顺畅。
V5.1.0 【2025-01-12】将原播放列表管理集成到左侧的系统文件视图中,使用方法不变;
完整播放列表打开时的读取机制,解决开音乐较多时打卡顿现象;
播放器可以点击进度条直接跳转(原只能靠拖动滑块);
修改了部分 BUG 与不合理处。   
V5.0.0 【2025-01-10】
V5.0.0 版本采用 PyQt5 编写,在界面和功能上都有很大提。代码也全部重写,历经了近4年代码也进行了很大程度上的优化。

在界面上、操作上进行了优化和加强,更容易上手,新增了歌单移动、合并功能,多个歌单之间可以用复制、粘贴添加音乐,复制、粘贴甚至还能与资源管理(我的电脑)进行配合(可实现从歌单中复制音乐到指定位置)。
自带了音乐播放功能,在主窗口中可以按歌单内容播放音乐,在歌单编辑窗口可以指定音乐播放,在歌单修复窗口可以试听匹配到的音乐,比起之前借助第三方播放器方便了不少。

V5 采用了MDI多文档的窗口模式,将以前的系统文本视图做成了右侧面板,将歌单编辑、修复、管理等操作以子窗口的形式打开。同时修改一些BUG,如磁盘卷标(名称)若存在乱码(UTF-8编码)时导致一片空白,以及一些不合理之处。针对一些使用 UTF-8 编码的播放设备,现还添加了修改磁盘卷标为相应编码的功能(缺点是 windows 系统中会显示乱码,目前还没找到解决方法)。   

全面修改了歌单修复操作方式,操作起来更加方便易懂。本工具没有提供音乐移动功能,每个人的保存分类的习惯不一样,大家可以按自己的习惯在文件管理器(资源管理器、我的电脑)中,将音乐移动到分类好的目录后,直接使用歌单修复就可以自动定位音乐。大家也可以使用我以前写的《文件名管理器》对音乐进行批量快速分,工具提供了多种分类方式,基本可以满足各种分类管理要求。   



【工具简介】
本软件可快速制作音乐播放列表(歌单),对音乐U盘支持友好,同样也可对硬盘上音乐创建歌单。软件还可修改音乐标签信息、内嵌图片等多种功能,也可以移动、转换、合并歌单。可在歌单间也可以进行复制、粘贴操作,甚至可以与资源管理联动。

【工具特色 】
  • 打开软件后会自动搜索移动磁盘(U盘)并分析其音乐信息。
  • 支持 4 种常见播放列表格式: m3u、m3u8、wpl、pls。
  • 可快速移动歌单(音乐路径会相应修改)、合并歌单和歌单格式转换。
  • 为不同格式的播放列格式预设内容模板,支持修改模板或添加模板样式。
  • 提供多种音乐添加方式,支持拖拽添加音乐,提供多种音乐排序功能,可用鼠标自由拖放排序。
  • 支持不同歌单格式之间的快速转换,让音乐U盘支持更多的播放设备。
  • 可快速修改音乐的 ID3 信息,支持部分信息对换,可从文件名提示信息写入 ID3,出可以用 ID3 信息修改文件名。
  • 支持修改音乐图片,可直接粘贴剪切板中的图像作为音乐图片,能快速压缩过大的图片以减少音乐体积。


【界面】
主窗口



歌单编辑窗口



歌单修复窗口



歌单管理窗口



【使用方法 】
常用操作:
软件为了减少启动时间,默认不会自动分析移动磁盘以外的驱动器(可以软件设置中修改),可通过双击目录手动分析其音乐情况。
在歌单管理器中,可以将歌单移动到其他目录,还可以拖动歌单合并到其他歌单中。同一目录中若有多个歌单的还可以进行快速排序。

一、创建新歌单
  • 在系统文件视图中选择要存放歌单的位置(建议先做这步,方便添加音乐)
  • 创建新的播放列表;
  • 添加音乐,软件提供多种添加方式,还支持文件拖拽和粘贴方式;
  • 按自己的喜好排序播放顺序(支持鼠标拖动操作,喜欢的音乐还可以用复制粘贴方式来增加播放次数);
  • 保存歌单,注意保存位置和歌单格式。


二、修复歌单
本功能通常在音乐发生移动后(或文件名稍做修改时),软件再通过遍历查找,把文件名相同或相近的文件列出来,若匹配到多首音乐时将按文件名相似度排序,可手动选择或指定其他位置音乐。因此,针对音乐U盘可以将音乐按自己的习惯整理(存放在不同的分类目录中),再通过修复功能定位歌单中路径不正确的音乐。
  • 选定需要修复的播放列表后,用修复命令打开;
  • 匹配定位出错的音乐;
  • 匹配到多个音乐时可选取正确的音乐;
  • 匹配不到音乐的(音乐被删除或文件名改动较大时) 可降低相似度尝试,仍不能定位的可手动指定或删除;
  • 保存歌单。


三、歌单转换
常见的歌单有4种格式:m3u、m3u8、wpl、pls,前两种格式一样,是最常用的歌单格式,后两种格式稍微复杂些,会记录音乐长度等特殊信息。歌单转换就是把歌单存成另一种格式,本软有2种方法转换歌单格式:
  • 以歌单编辑的方式打开歌单,再用另存为保存为其他格式;
  • 在系统文件视图中选中歌单,使用转换歌单命令。


四、移动歌单、合拼歌单
这两种操作需要先进入到歌单管理器,再切换到“拖拽”模式,直接拖动歌单即可完成:
  • 打开歌单管理器,根据操作范围选择开始位置(能显示操作的歌单和目录位置);
  • 切换到“拖拽”模式;
  • 选中要移动的歌单(合并时选要引用音乐的歌单 );
  • 拖动歌单到移动的目录(合并时拖动到接收音乐的歌单) 。


五、歌单排序
对于音乐U盘,其根目录通常会存有多个歌单,为了让播放设备能按指定顺序显示歌单,可通过在文件名增加前缀序号实现。本软件可在歌单管理器中快速实现:
  • 打开歌单管理器;
  • 切换到“排序”模式;
  • 移动歌单,可通过拖动、命令按钮或键盘移动;
  • 使用“排序”命令增加文件名前缀实现排序(原有序号的会自动替换)。


【下载链接】
主下载地址(最新版本):
蓝秦 https://wwx.lanzoux.com/b01hxwx9g
提取码: gcf2

备用地址(同时有历史版本):
百度网盘 https://pan.baidu.com/s/12o8BUB1BBpjqrKpG_8IxLg?pwd=52pj
提取码: 52pj







    本人的其他作品:
    1 定时组合任务《此刻我要...》 链接
    2 批量粘贴神器 链接
    3 文件名管理器 链接
    4 批量二维码生成器(离线) 链接
    5 小说规则下载器 链接
    6 ePub 电子书编辑器 链接
    7 U盘歌单管理器 链接
    8 文件时间修改器(毫秒级) 链接
    9 剪切板资源捕获器 链接
    10 文件清单生成器 链接
    11 小说角色更名器 链接
    12 音乐内嵌图片管理器 链接
    13 小说广告清理器 链接
    14 漫画下载器 链接
    15 漫画图管理器 链接
    16 小学数学运算题随机生成【excel】 链接
    上述作品均可在下载链接页面中找到!

免费评分

参与人数 173吾爱币 +171 热心值 +153 收起 理由
Lemontea0 + 1 + 1 我很赞同!
85855831 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
houmasv + 1 谢谢@Thanks!
schtg + 1 + 1 用心讨论,共获提升!
hushuai450 + 1 热心回复!
viconly + 1 + 1 谢谢@Thanks!
Lezing + 1 + 1 我很赞同!
jjyfzx + 1 热心回复!
jinggege3344 + 1 + 1 谢谢@Thanks!
jashtp + 1 + 1 谢谢@Thanks!
冷丶眸 + 1 + 1 谢谢@Thanks!
WWJ20011218 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
maiwens + 1 + 1 谢谢@Thanks!
zzhzebra + 1 + 1 热心回复!
nizeze + 1 + 1 鼓励转贴优秀软件安全工具和文档!
viplv + 1 + 1 我很赞同!
203B0337 + 1 我很赞同!
franksley + 1 + 1 我很赞同!
a107833 + 1 + 1 用心讨论,共获提升!
tomanpj + 1 + 1 谢谢@Thanks!
66pojie + 1 + 1 谢谢@Thanks!
秦淮河上一杯酒 + 2 + 1 谢谢分享
qq8808 + 1 + 1 谢谢@Thanks!
xj042102104 + 1 谢谢@Thanks!
空若野 + 1 我很赞同!
Lironghao0100 + 1 + 1 谢谢@Thanks!
mysy1108 + 1 + 1 谢谢@Thanks!
38342175 + 1 + 1 谢谢@Thanks!
WM715 + 1 + 1 谢谢@Thanks!
tt996 + 1 + 1 谢谢@Thanks!
xcheng521 + 1 + 1 热心回复!
kitymaisie + 1 + 1 我很赞同!
junjunjs + 1 + 1 鼓励楼主,谢谢楼主
and1rew + 1 谢谢@Thanks!
k838868 + 1 + 1 用心讨论,共获提升!
myisdd + 1 谢谢@Thanks!
wzlq000 + 1 + 1 谢谢@Thanks!
Peace + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ybgarnet + 1 + 1 谢谢@Thanks!
HL309966 + 1 鼓励转贴优秀软件安全工具和文档!
taiyangjie + 1 + 1 谢谢@Thanks!
greenmood + 1 热心回复!
xinye6768 + 1 + 1 谢谢@Thanks!
moonrabbit + 1 + 1 谢谢@Thanks!
Tea毒生灵 + 1 + 1 我很赞同!
enjoylifenow + 1 + 1 我很赞同!
lxf2977 + 1 谢谢@Thanks!
紫色情愫 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
sunline + 1 + 1 谢谢@Thanks!
huali0855 + 1 + 1 热心回复!
zzli + 1 + 1 谢谢@Thanks!
378066567 + 1 + 1 谢谢@Thanks!
yzqps2 + 2 + 1 我很赞同!
blywq + 1 + 1 谢谢@Thanks!
zuowen + 1 热心回复!
zhulingfenga + 1 + 1 我很赞同!
浪漫前奏 + 1 + 1 用心讨论,共获提升!
richyfly + 1 + 1 我很赞同!
逼哥i + 1 + 1 谢谢@Thanks!
cyxi22 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wang145696 + 1 + 1 谢谢@Thanks!
孤枫落鸿 + 1 + 1 我很赞同!
CaiLao + 1 + 1 谢谢@Thanks!
y158520 + 1 + 1 谢谢@Thanks!
wawjwmdj + 1 + 1 谢谢@Thanks!
13388157215 + 1 + 1 我很赞同!
next_hop + 1 + 1 我很赞同!
萌新酱 + 1 我很赞同!
zjyl125 + 1 + 1 谢谢@Thanks!
Fate_XZ + 1 谢谢@Thanks!
风衣地象 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
citynook + 1 谢谢@Thanks!
xlwllm + 1 + 1 谢谢@Thanks!
SVIP008 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
liangqili + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
大中至正w诸法空 + 1 + 1 鼓励写、转贴优秀软件安全工具和文档!
liuxincai + 1 + 1 我爱大神、
Sherik0010 + 1 + 1 谢谢@Thanks!
bqi153 + 1 + 1 谢谢@Thanks!
ycauto + 1 + 1 用心讨论,共获提升!
TIAOWUQINGYU + 2 + 1 我去 链接里面居然所有的文件都有,这要多给币了
heiyue003 + 1 + 1 热心回复!
dreamcrazy + 1 + 1 我很赞同!
af114708 + 1 我很赞同!
wer1023 + 1 + 1 我很赞同!
Zsh251618 + 1 谢谢@Thanks!
hjbabin + 1 + 1 谢谢@Thanks!
jh95wxg + 1 鼓励转贴优秀软件安全工具和文档!
henryshao + 1 + 1 谢谢@Thanks!
lizhenqiang1990 + 1 谢谢@Thanks!
QaQ355 + 1 + 1 热心回复!
孤王 + 1 + 1 谢谢@Thanks!
Yiii952 + 1 + 1 谢谢@Thanks!
Z2523 + 1 用心讨论,共获提升!
孤独尽头是自由 + 1 + 1 谢谢@Thanks!
liugngg + 1 我很赞同!
yzbf + 1 + 1 谢谢@Thanks!
Shiliu2713 + 1 + 1 大佬制作的软件都非常实用~
lh910103 + 1 + 1 谢谢@Thanks!
853679185 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| jumpbull 发表于 2025-1-11 00:54 |楼主
本帖最后由 jumpbull 于 2025-1-14 22:49 编辑

软件编写花絮
这是学习 pyqt  的第二个软件,虽然现在也还在学习,但边学边用最有效果!

pyqt 比 tkinter 好用太多了,但也存在不少坑,学习使用时还是得一个个去填,比如 QTableWidget 就不提供移动功能,还得自己写方法,这还是小事,最要命的是它的 item 对象还是一次性的,只要用过就失效,还得把它克隆后才能再使用。这个坑卡了我差不多一天!

QTreeWidget 也一样,移动功能还得自己写,这些小部件在写修改方法时,若绑定了修改信号,还会在移动时乱发信号,这里也我把坑了一把,最后靠暂时信号后才正常,所以几乎每个修改方法前后都要加屏蔽信号、恢复信号的代码。

在自己编写 QTableWidget 行移动时非常烧脑,还要考虑多选问题,向上移、向下移、移到选择中间,甚至还有移到最前面、最后面的处理方法都不一样,我又不是数学学霸。不能快速特定算法,只能通过不断的试验、中断找方法,确实好累!!!

pyqt 中菜单图标尺寸没找到方法实现,只能按 16*16尺寸显示,在网上转了半天,才找到一篇说自定义菜单的文章,也就是使用 QWidgetAction来加载 自定义的 QWidget 菜单项,最后终于能实现菜单图标尺寸按自己的想法来显示。但最后卡在二级菜单上,二级菜单目前还是找不到方法显示其他尺寸图标的方法。

pyqt 的代码要比 tkinter 多太多,但提供的功能确实强大,这工具以前就有的想法无法用 tkinter 实现,现用 pyqt 就能轻松解决,比如原修复歌单原来只能在 text 对象上添加按键实现,但位置非常不好控。现在改用 pyqt ,QTableWidget 、QTreeWidget  都能很方便地在任何位置添加,且它们还支持添加用户数据,就是暂存一些与显示相关的数据,在处理 item 时能很方便的获取,原来只能存在变量中,处理起来会很烧脑。

这里还在使用 tkinter 的,我强烈建议转型使用 pyqt ,优点远远大于缺点!

目前软件还有两个小问题没找到解决方法,如果哪位大能有解决方案,希望能给予赐教!!
1、二级菜单项图标尺寸控制问题
2、正常读取 UTF-8 编码磁盘卷标的方法

这里给大家示例一下 QTableWidget 多行移动的模型,有兴趣的可以看看,让大家了解一下编程的大体思路
[Python] 纯文本查看 复制代码
def moveUp(): 
        """
        选中的行向上移
        :return: 实际移动的行数
        """
	count = 0  # 统计移动数
	self.selectionModel().clearSelection()  # 清空选择
	index = 0  # 移动项目序号,是多行移动,还要考虑除选择首行外其他行是否达到上方

	rows   # 获取选中要移动的所有行号列表
	for row in rows : # 遍历所有要移动的行
		if row == index:  是否移到最上方(因为是多行,不能简单地判断 row == 0)
			index += 1 # 累计达到上方的行数
			self.selectRow(row)  # 选中行(移动完后要选中原来的行)
			continue  # 结束该行的操作

		# 下面是一般行正常的向上移动操作
		行交换方法(row, row - 1) # 上移一行,交换行是预选编写的方法,实现两行之间的数据交换
		self.selectRow(row - 1)  # 选中移动后的行
		count += 1

	return count

def moveDown():
	"""
	选中的行向上移
	:return:实际移动的行数
	"""
	self.selectionModel().clearSelection()  # 清空选择
	count = 0  # 统计移动数
	index = 0  # 移动项目序号,要考虑除选择首行外其他行是否达到下方

	rows   # 获取选中要移动的所有行号列表
	for row in reversed(rows): # 要倒序遍历选中的行
		if row == self.rowCount() - index - 1:  是否移到最下方(因为是多行,不能简单地判断 row == self.rowCount() - 1)
			index += 1
			self.selectRow(row)  # 选中
			continue  # 结束该行的操作
		
		# 下面是一般行正常的向下移动操作
		行交换方法(row, row + 1) # 下移一行,交换行是预选编写的方法,实现两行之间的数据交换
		self.selectRow(row + 1)  # 选中移动后的行
		 count += 1

	return count


置顶、置底比较简单,就不写了
推荐
fireshark 发表于 2025-1-11 01:08
推荐
group0721 发表于 2025-1-11 08:09
推荐
xfwww 发表于 2025-1-11 08:31
学习了,感谢分享
4#
seazer 发表于 2025-1-11 01:00
厉害了!辛苦了大佬
5#
xjh900705 发表于 2025-1-11 01:06
厉害大佬  牛批普拉斯
6#
qi1990 发表于 2025-1-11 01:44
大佬厉害了
7#
penz 发表于 2025-1-11 03:22
很牛很牛!辛苦了,楼主!
8#
cclnnl 发表于 2025-1-11 03:28
谢谢楼主分享
9#
niyuyi 发表于 2025-1-11 03:47
感谢分享
10#
blacktulip 发表于 2025-1-11 04:50
非常实用,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-20 20:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表