![在 amarok 中仅播放特定日期之前播放的歌曲的方法](https://linux22.com/image/1046839/%E5%9C%A8%20amarok%20%E4%B8%AD%E4%BB%85%E6%92%AD%E6%94%BE%E7%89%B9%E5%AE%9A%E6%97%A5%E6%9C%9F%E4%B9%8B%E5%89%8D%E6%92%AD%E6%94%BE%E7%9A%84%E6%AD%8C%E6%9B%B2%E7%9A%84%E6%96%B9%E6%B3%95.png)
我想在 amarok(版本 2.8.0-0ubuntu3)中创建一个动态播放列表,播放我有一段时间没听过的歌曲,例如,它是否应该只包含 2013 年或更早播放的歌曲。
这是一个相当简单的条件,我认为有一个简单的方法可以做到这一点,但我还没有找到方法,而且在谷歌上搜索这个问题也没有多大帮助。
我已尝试过:
我查找了可以用于此目的的搜索关键字。Amarok 手册 有点含糊地说可以搜索上次修改的时间,但没有说如何做到这一点。
我尝试按上次播放的歌曲对播放列表进行排序,希望这样可以诱使 amarok 只播放特定日期之前的歌曲(如果种子设置正确),但不幸的是,当前歌曲的上次播放日期在结束前更改为“刚刚”,将其排在最前面。接下来播放的歌曲是倒数第二首歌曲,因此 amarok 只会循环播放最后两首歌曲。
然后,我将播放列表中之前的歌曲数量改为 0,希望这样会自动删除上次播放当前歌曲之后播放的所有歌曲。这当然会导致播放“从未播放”的歌曲,但速度足够慢,我可以忍受。但它不起作用,因为 amarok 不会删除当前歌曲之前的歌曲。
我目前的解决方法是将尽可能多的歌曲填充到播放列表中,按最后播放的顺序排序,然后将我想要的所有歌曲放入等待循环(或无论英文版本中如何称呼,我的意思是您可以通过右键单击播放列表中的一首歌曲来选择的选项),删除其余的,并大约每 7 小时重复一次此过程。
现在我希望有一种不那么烦人的方法来实现这一点,那么:有没有好的方法可以做到这一点?
答案1
在“媒体源”面板中,进入“播放列表”,然后进入“动态播放列表”。
添加新播放列表。它会给你一个带有标准(偏好)的播放列表,例如“类型:摇滚”。选择并编辑它。
将匹配类型更改为“匹配元标记”。这将为您提供以下一组不同的选项。
将第一个下拉菜单(“简单搜索”)更改为“上次播放”。其他两个输入允许您执行各种操作,例如:
- 2014 年 1 月 1 日之前(馆藏搜索等值 =
lastplay:<01/01/2014
) - 超过 200 天(馆藏搜索等值 =
lastplay:>200d
)
确定,双击播放列表即可使用它。
请注意(据我所知)绝不被播放过,如果你使用“之前”结构,但不是如果您使用“旧于”构造,则包括。如果您想在后一种情况下包含未播放的曲目,则需要使用“或”/匹配任何偏差和两个子偏差:一个lastplay:>200d
和playcount:0
另一个。
答案2
恐怕这不完全是 Amarok 解决方案(听起来您已经用尽了搜索)。
然而,这种查询在自由之地(免责声明:我知道,因为我是开发人员之一):
例如搜索:
#(lastplayed > 1 year)
将返回去年未播放的所有歌曲。这可以与所有其他搜索语法正常情况下,例如
&(genre=Classical, #(lastplayed>10 weeks))
将返回上周未播放的所有古典歌曲。
如果您愿意,可以使用命令行自动执行此操作,您现在可以执行以下操作:
$ quodlibet --print-query "#(lastplayed > 1 year)"
...然后,这会将与该查询匹配的歌曲的完整路径列表打印到stdout
。应该很容易将其导入到您需要的任何地方,例如 Amarok。