lrisora
lrisora
> 我的想法是能不能之后只存储key,数据全部存数据库里(考虑引入sqlite3 `当前歌曲的信息单独存一份,当前播放列表只存储key`,这个以后有打算,不过可能只存时长信息用于维持内核播放就足够 重新初始化播放列表时m_playlist[m_index]会失效,目前是用停止播放的方法度过这段时间 切换播放列表保持播放/播放列表添加歌曲时 不重新打开歌曲都需要这个 ~key也不算小吧~ 媒体库内容的更改不会自动触发各种窗口的更新,还是复制SongInfo安全, 用媒体库独一份的SongInfo可以预见会发生各种不同步的bug
在MusicPlayerDlg.cpp的1408行 ` pMenu->EnableMenuItem(ID_PLAY_AS_NEXT, MF_BYCOMMAND | (selete_valid ? MF_ENABLED : MF_GRAYED));` 重新排序也是播放列表变动,所以在那些地方有m_random_list.clear(),因为排序后m_random_list也失效了 同理m_next_tracks也需要清空 这部分计划以后换成存储键就不会因为排序而失效了 手动播放时复位, 仅在下一曲时从m_next_tracks中提取, 按照随机播放的设计,随机播放存储的是字面意义的播放历史 ```c++ bool CPlayer::PlayTrack(int song_track, bool auto_next) { if (song_track != NEXT && song_track !=...
这里的循环模式除新增的单曲播放外是在 #89 改的, 最后定下来的是 无序播放上一曲=无序列表的上一曲 无序播放下一曲=无序列表的下一曲 无序播放完成一遍重置,手动播放重置,播放列表变动重置 随机播放上一曲=如果随机历史不为空则取出一个播放否则停止 随机播放下一曲=随机选取 随机历史仅存储随机播放的历史并去重 ~虽然我觉得存储所有模式的历史也问题不大~ 随机历史存储手动播放 随机历史播放列表变动重置 其他模式直接就是字面意义,简单易懂
这个代码很旧了(还是被markdown解析了),现在的声明是 ```c++ void CAudioCommon::GetInnerCueTracks(vector& files, IPlayerCore* pPlayerCore, int& index) ``` 这里失败条件是files中有路径无效的歌曲, 我能想到的是上层的GetCueTracks对非内联cue解析后没有找到对应音频文件才会出现这种情况 Release版应该是不影响使用的,这里也可以加上 类似的打开空播放列表也会触发一个ASSERT,这只是触发调试断点是可以选择忽略并继续的
这个列表是按上次播放时间排序的最近播放的播放列表列表的,很难改成播放列表列表 涉及到有大量播放列表时的处理等复杂问题,如果要改需要一个合理方案 新播放列表没有被加入是由于其最近播放时间为0 和直觉不一样,获取播放列表的总时长并不总能快速完成,有可能会花费难以忍受的超长时长 媒体库窗口无法等待其更新完成后再开启,所有是使用的上次留下的信息并且不进行更新 这里显示的上次播放,曲目数,总时长是上次离开此列表时存储的信息 添加到新播放列表菜单确实没有在播放列表的增减时同步,不过下面的“更多播放列表”是实时的
> 像添加到播放列表那里一样,搞一个"更多播放列表"可行吗 这样是能够做到的,只是好像偏离了快速切换的本意,这个下拉菜单本来是为了方便添加的, 能够接受这样的操作复杂度为什么不使用可以更加快速且方便切换的媒体库窗口 播放列表/文件夹 的“上次播放/曲目数/总时长”保持更新时点一致比较好,只更新其中一项很怪,更加难以理解 MusicPlayer2的播放列表是兼容m3u8的,容许外部编辑, 也就是说新播放列表不一定需要由程序生成,即使是“新播放列表”也可能含有媒体库不存在的歌曲 另外有的播放列表可能部分歌曲指向移动硬盘等一时无法访问的位置,更新反而不好 这里保持现状显示上次退出时状态虽然是个妥协不过综合考虑也算最佳方案了
没想到会有不使用卡拉ok模式又要去掉空行的需求,目前是需要两个同时勾选才生效 如果要实现 不使用卡拉ok模式+不显示空行, 我有一点不确定的地方,当歌曲正处于两行歌词之间的空行时下面哪种比较好 - 显示上一句歌词 - 显示下一句歌词 - 显示进度符号+下一行歌词(也就是目前两个都选+去掉变色) 没有其他带歌词的播放器,需要一些参考 这个把空行转换为进度符号的操作就是规避这个问题,实现了看到歌词就能直接确定播放进度
> 其实三个选项我都可以,就是不想有music的词语停在那里,那样感觉像是自己整理的歌词不完整,当然这不是什么刚需的功能啦,我忍忍也行 这个实现不难,只是做成什么样还没确定, fb2k的ESLyric插件的桌面歌词感觉也很怪, 双行时遇到空行变单行,单行时遇到空行直接不显示桌面歌词 ~现在MusicPlayer2的桌面歌词关掉卡拉ok模式后没有任何变色,双行模式下用着不舒服需要修~ ~像fb2k一样做成当前播放行高亮应该比较好~ 没关过卡拉ok模式搞错了
这里原功能是在小娜的搜索框内显示,新版win10好像把小娜砍掉了(还是之前被我自己禁用了,不确定) 目前只有兼容模式能用,win11干脆没有搜索框,不知道作者还会不会支持 不过看你使用的是窄任务栏图标,这样原本就不行,只有宽的那个任务栏才能设置显示搜索框 没有搜索框自然不能显示,用这个就只能放弃窄任务栏图标
是不是只会漏后面的部分,这种情况可能是自动匹配到了short版(TV版)的歌词 比如开启模糊匹配时 `内田彩 - Sign.mp3` 会成功匹配到 `内田彩 - Sign (TV Edit).lrc` 而不进行自动下载 有的short版并不会在标题里注明,这时为其下载歌词会保存为完整版的文件名导致错误关联 如果不是这样请发出问题的歌词文件