banshee:如何通过DBus为Banshee中的特定曲目设置评分?

1 投票
3 回答
725 浏览
提问于 2025-04-15 14:48

我想通过DBus接口在Banshee上设置某个特定音乐曲目的“评分”(也就是说,不仅仅是当前正在播放的那首)。

3 个回答

1

很遗憾,开发者没有实现一个GET方法,所以没有通用的方式来执行“给当前播放的曲目评分1星”的命令,更别提对特定曲目的评分了。有没有人写过脚本来提供这个功能?目前我还没有找到通过命令行修改D-Bus属性的解决方案。最后,这里是我用来给当前播放曲目评分的变通方法。

#!/bin/bash

#read current TrackRating
R=$(qdbus org.mpris.MediaPlayer2.banshee /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep 'userRating' | tr -d '/xesam:userRating: ')

case $R in 
 '' )    R=0 ;;
 '0.2' ) R=1 ;;
 '0.4' ) R=2 ;;
 '0.6' ) R=3 ;;
 '0.8' ) R=4 ;;
 '1'   ) R=5 ;;
esac

case $1 in
 'inc' )    [ $R -lt 5 ] 
            banshee --set-rating=$(($R+1)) ;;
 'dec' )    [ $R -gt 0 ]
            banshee --set-rating=$(($R-1)) ;;
 'res' ) banshee --set-rating=3 ;;
 'min' ) banshee --set-rating=0 ;;
 'max' ) banshee --set-rating=5 ;;
esac

选项:

  • inc -> 如果可能,评分增加1
  • dec -> 如果可能,评分减少1
  • res -> 将评分重置为3星
  • min -> 将评分设置为0星
  • max -> 将评分设置为5星

因为Banshee不提供对特定曲目数据的操作,这就是我目前最好的办法。

2

Banshee从去年开始就支持通过命令行进行评分了。

banshee --set-rating={1;2;3;4;5}

想了解更多选项,可以查看这个错误报告: 在DBus接口中添加项目评分

2

Banshee这个软件没有通过DBus提供评分功能。

你可以使用像d-feet这样的应用程序快速查看它所提供的所有功能。确保你感兴趣的应用程序(比如这里的Banshee)正在运行。

已经有一个错误报告请求在DBus接口中添加评分功能。你可能想要关注一下这个报告。

  1. https://fedorahosted.org/d-feet/
  2. https://bugzilla.gnome.org/show_bug.cgi?id=579754

撰写回答