zhongyang219/MusicPlayer2

希望加入webdav网络播放功能和音乐文件相对路径支持

Opened this issue · 7 comments

  1. 由于 webdav 的特性, 部分播放器可以通过播放网盘(如 123云盘, 坚果云, 和 NextCloud )内的媒体内容.
  2. 我的音乐文件都放在 U盘 里,每次都重新建立播放列表实在不方便,希望加入这个功能,而且作者你的 MusicPlayer1 就有这个功能嘛🥺

...第二个问题我好像找到解决办法了.可以通过将config.ini文件的媒体库路径更改为相对路径即可解决.
作者大大还是做了Portable Mode的
但软件本身内无法实现这个操作,路径框只能选择绝对路径而无法更改

没想到还有这个操作,
有点不同,应该可以勉强用 但不太能正常工作 不能算正常工作

主要问题是媒体库现在使用绝对路径区分每个音频文件,为其维护属性(例如上次播放时间/累计播放时长)
这样的话如果盘符有改变这些属性会被洗掉(或者每个盘符有自己的一份属性
playlist现在总会将相对路径转换为绝对路径存储,避免同一媒体库条目对应到多个实际文件的潜在可能性
关联歌词存储也是绝对路径
涉及的地方有点多,完善支持相对路径还是有些困难

不是总换电脑的话可以给U盘设置固定盘符,
如果需要换电脑我不知道有什么自动化方法(每次手动分一个固定盘符可以用但有点麻烦)

webdav挂载为本地磁盘应该是可以用的,只是有点效能问题(第一次打开) 应该是这样,我没试过

webdav挂载为本地磁盘应该是可以用的,只是有点效能问题(第一次打开) 应该是这样,我没试过

我想要这个和以相对路径实现 portable 的目的和支持 webdav 的目的是一致的,就是想把软件拷在U盘里能随身携带, 挂载起来就不便携了

MusicPlayer2_9uXSIQX9oW

其实当前我的这个办法还是能用的, current folder 也成了相对路径.

我测试过切换u盘的盘符,实际上能够一定程度上实现在同一台电脑中"便携",而且不影响电脑硬盘中的 MusicPlayer2 . 但我还没测试在不同设备上运行的效果.

主要问题是媒体库现在使用绝对路径区分每个音频文件,为其维护属性(例如上次播放时间/累计播放时长)
这样的话如果盘符有改变这些属性会被洗掉(或者每个盘符有自己的一份属性

在软件根目录有一个名曰 global_cfg.ini 的文件,里面有 Portable_Mode 的设置. 我们要便携大概都是把音乐都放在和软件一个盘的罢,可以在这个设置为 Ture 时只检索软件所在盘符的文件吗?

要是有能力的话我想做一个 PortableApps 的版本, 可惜我只会写 Hello World (悲)

Portable_Mode 当软件位于可写目录时默认值就是true,不能用于限定于所在盘符
Portable_Mode 指软件的配置“可携带”并且其正常工作不依附于系统

这里主要问题还是如何区分音频文件,现在是使用绝对路径(cue再加上音轨号),
导致音频路径改变时无法正常继承之前的信息(它们会被软件视为新的歌曲)
主要(最难改的部分)体现于媒体库存储元数据属性以及 .playlist 保存播放列表条目
以比较好理解的 .playlist 保存播放列表条目举例,
这里现在存储绝对路径,使得软件可以任意移动并不影响工作
如果改为相对路径那么程序移动后就没办法确定指向原歌曲
现在程序建立在歌曲/歌词的绝对路径不会改变的前提下
否则会将其视为新歌曲

让音频文件可携带还是很困难的,我没想到合适的方法(原因参上)
不过如果以限定只能播放与播放器同盘符文件为前提倒是想到一个奇怪的方式
让播放器加载数据时替换所有路径盘符为程序当前盘符,只要一点工作量,但会导致没办法跨盘符播放

让音频文件可携带还是很困难的,我没想到合适的方法(原因参上) 不过如果以限定只能播放与播放器同盘符文件为前提倒是想到一个奇怪的方式 让播放器加载数据时替换所有路径盘符为程序当前盘符,只要一点工作量,但会导致没办法跨盘符播放

这个办法可能可行, 我用的一个非官方的 Obsidian Portable 就是这么实现的. 但这也意味着要出一个单独的 Portable 版本.

理论上是可以使用相对路径的,只是现在通过GUI选择路径只能等到绝对路径。我刚刚试了一下:

  1. 把MusicPlayer2复制到音乐目录下
  2. 将global_cfg.ini中的portable_mode改为true
  3. 启动程序后马上关闭,MusicPlayer2目录下就会生成config.ini。
  4. 打开config.ini,找到media_folders,改成相对路径,比如我这里是..\
    image
  5. 启动程序之后,可以正常读取到相对路径中的内容,并更新媒体库,设置中看到的媒体库路径也是相对路径
    image
    媒体库界面中的“文件浏览”中显示的也是相对路径,播放一个文件夹后看到的也是相对路径
    2024-07-27 (5)
    2024-07-27 (6)

在2.77版本中已经可以通过“打开URL”打开相对路径的文件或文件夹了,直接在“打开URL”的文本框内输入相对路径即可。